home *** CD-ROM | disk | FTP | other *** search
/ Corel Draw 9 / CorelDraw9 Disco 1.iso / Custom / userproc.ps < prev   
Text File  |  1999-02-08  |  98KB  |  4,140 lines

  1. %%  --------------------------------------------------------------------
  2. %%  ----------- ARCHIVO DE FUNCIONES DEFINIDAS POR EL USUARIO ------------------
  3. %%  ------El nombre del archivo es: USERPROC.PS---------------------------------
  4. %% NOTAS:
  5.  
  6.  
  7.     Hay dos tipos de funciones definidas por el usuario: "Punto" y "Relleno"
  8.  
  9.     - Una funci≤n "Punto" es aquella que toma dos argumentos de coma flotante,
  10.         X e Y, ambas entre -1 y 1,  y devuelve un solo valor real entre
  11.         -1 y 1 (de lo contrario ocurre un error de ejecuci≤n) llamado Z.
  12.         El dominio es un rectßngulo de 2 X 2 que se asignarß (durante la impresi≤n)
  13.         a cada celda de la trama de medios tonos.
  14.         La representaci≤n en 3-D de la funci≤n Z = f(X,Y) (no necesita
  15.         ser continua, pero  f(X,Y) debe estar definida para todo -1 <= X, Y <= 1 )
  16.         es una superficie cuyos puntos mßs altos se blanquearßn primero en cada 
  17.         celda.
  18.         Para mßs informaci≤n sobre funciones de punto, consulte la secci≤n 4.8 de
  19.         POSTSCRIPT LANGUAGE REFERENCE MANUAL (de Adobe Systems
  20.         Inc.).
  21.  
  22.     - Una funci≤n de Relleno toma entre 0 y 5 argumentos.  Supone que ya hay un
  23.         trayecto dibujado (puede estar cerrado o no, puede estar desconectado) e
  24.         intenta rellenarlo.
  25.         Una funci≤n de relleno simple puede ser:
  26.                 /MiRelleno1 { %0 parßmetros
  27.                     0,70 relleno de gris } bind def
  28.         Para rellenos mßs complejos, la funci≤n de relleno puede referirse al
  29.         recuadro de limitaci≤n del objeto actual que siempre viene definido en
  30.         unidades de CORELDRAW (1/1000) de una pulgada y en relaci≤n al origen
  31.         l≤gico de CORELDRAW.
  32.  
  33.         Pueden usarse siempre Bbllx, Bblly, Bburx, Bbury globales para obtener las
  34.         esquinas inf. izquierda y sup. derecha del recuadro de limitaci≤n del objeto.
  35.  
  36.         NOTA 1: Para objetos con trayectos desconectados como palabras con 
  37.         m·ltiples letras y lφneas y curvas desconectadas, se llamarß a la funci≤n de
  38.          relleno un vez para cada subtrayecto. No obstante, el recuadro de limitaci≤n 
  39.         permanece igual para cada llamada.
  40.  
  41.         NOTA 2: Cuando CORELDRAW la llama, la funci≤n de relleno estarß dentro
  42.         de una secuencia "gsave - grestore" para que la funci≤n de relleno no
  43.         necesite restaurar es estado de los grßficos original. Ademßs, la funci≤n de
  44.         relleno no debe hacer ninguna suposici≤n sobre el estado actual de los 
  45.         grßficos que no sea la siguiente:    - El ßngulo de reotaci≤n actual es 0                                 (-90 para pßginas apaisadas)
  46.                         - La unidad actual es el MIL (1/1000 pulg.)
  47.                         - Hay un trayecto listo para rellenar.
  48.  
  49. SINTAXIS PARA ESTE ARCHIVO:
  50.     - Una definici≤n de funci≤n comienza con una lφnea de comentarios
  51. "%@Spot" o
  52.     "%@Fill" que comience en la lφnea uno indicando que se va a definir una
  53.     funci≤n punto o relleno.  Se ignora el recordatorio de esta lφnea.
  54.     - La lφnea que la sigue inmediatamente debe comenzar con un nombre de funci≤n
  55.     inmediatamente precedido por una '/' (barra) en la columna uno
  56.     (ej: /MiPrimerRelleno).
  57.     Este nombre se usarß para identificar el rellon en el archivo .CDR y los archivos
  58.     .EPS. El recordatorio de una lφnea indica el nombre que aparece en la ventana de
  59.     dißlogo de la funci≤n personalizada de CORELDRAW y los parßmetros de usuario
  60.     para esa funci≤n: Las funciones de punto no admiten parßmetros de usuario, s≤lo un
  61.     nombre de presentaci≤n. Las funciones de punto admiten de 0 a 5 parßmetros
  62.     especificados de la forma siguiente:
  63.  
  64.             %<nombrefnusuario>,<N║deparam> ,<nombreparam1>=<val.pordefecto1>,<nombreparam2>=<val.pordefecto2>,...
  65.  
  66. donde: <nombrefnusuario> es el nombre que se muestra en la lista de selecci≤n  PSFILL 
  67.                 , es la cadena que se traduce a las versiones de idiomas 
  68.                 extranjeros
  69.              <N║deparam> es un valor entero entre 0 y 5
  70.              <nombreparamX> es el significado del parßm. X (hasta 20 carac.)
  71.              <val.pordefectoX> es el valor numΘrico por defecto para ese parßm. (siempre
  72.                 entero)
  73. El n·mero de nombres de parßmetros y valore por defecto debe concordar siempre con el valor <N║deparam>.
  74. Antes de llamar a la funci≤n de relleno, el programa principal debe apilar los parßmetros en el mismo orden en el que se especificaron.
  75.  
  76. TODOS LOS PARAMETROS SON ENTEROS.
  77.  
  78. EJEMPLO: una funci≤n de relleno con 3 parßmetros
  79.  
  80.     %@Fill
  81.     /MiFunci≤n  %MiNombredeFunci≤n,3,GrisáFondo:=100,Gris1eráPlano:=50,Densidad:=4
  82.     {% cuando se llama, PILA= <GrisFondo> <Gris1erPlano> <Densidad>
  83.         /Interc. densidad 1 10 def InRange        % validar densidad
  84.         /Interc. Gris1er.Plano 0 100 def InRange    % validar gris 1er. plano
  85.         /Interc. GrisFondo 0 100 def InRange        % validar gris fondo
  86.             ...
  87.             } bind def
  88.  
  89.             NOTA: la funci≤n PostScript 'InRange'.
  90.             El programa principal no puede validar la gama de los parßmetros.
  91.             La funci≤n de relleno puede usar la funci≤n: 'InRange' que se
  92.             describe a continuaci≤n:
  93.                 <valor> <mφn> <mßx> InRange  ==>  <valnuevo>
  94.             InRange toma 3 argumentos from de la pila y se asegura de que 
  95.             <valor> estΘ entre <mφn> y <mßx>. Si es asφ, deja a <valor>
  96.             en la pila, de lo contrario, introduce un <valnuevo> vßlido en la pila.
  97.  
  98.             Nota: La funci≤n PostScript 'wDstChck' .
  99.             En el caso de que un valor mßximo sea igual a uno mφnimo, la
  100.             diferencia serß nula y en la mayorφa de los casos provocarß una
  101.             divisi≤n por cero.
  102.             La funci≤n de relleno puede usar la funci≤n que se proporciona:
  103.             'wDstChck'  que se describe a continuaci≤n:
  104.                 <ValorMßx> <ValorMφn> wDstChck ==> ValorMßx o ValMßx+1
  105.                 Si los dos valores son iguales, a±ada 1 al ValorMßx y dΘjelo en la
  106.             pila deje el ValorMßx sin cambiar en la pila.
  107.  
  108.     - Las siguientes n lφneas contienen el cuerpo de la funci≤n encerrada entre  llaves y
  109.     seguida de la secuencia "bin def".
  110.     - CORELDRAW no analiza el contenido del cuerpo. Una definici≤n se termina 
  111.     cuando se lee la siguiente secuencia '%@..." o al final del archivo.
  112.     - Las lφneas no debe exceder 150 caracteres de longitud..
  113.     - Los nombres de funci≤n no deben exceder los 20 caracteres.
  114.     - Los nombres de parßmetro no deben exceder los 20 caracteres..
  115.     - No hay lφmite para el n·mero de lφneas de cada funci≤n.
  116.  
  117.  
  118.  
  119. %@Spot
  120. /InvertedSimpleDot %InvertedSimpleDot
  121.         { %def --SPOT FUNCTION : InvertedSimpleDot
  122.           dup mul exch dup mul add 1 sub
  123.         } bind def
  124.  
  125. %@Spot
  126. /OutCircleBlk %CirExtNeg
  127.         { %def --SPOT FUNCTION : OUTCIRCLE: empty black circles
  128.           dup mul exch dup mul add 0.6 exch sub abs -0.5 mul
  129.         } bind def
  130.  
  131. %@Spot
  132. /OutCircleWhi %CirExtBlan
  133.         { %def --SPOT FUNCTION : OUTCIRCLE: empty black circles
  134.           dup mul exch dup mul add 0.6 exch sub abs 0.5 mul
  135.         } bind def
  136.  
  137. %@Spot
  138. /Diamond %Diamante
  139.         { %def --SPOT FUNCTION : DIAMOND1
  140.                   abs exch abs 2 copy add .75 le 
  141.                     { dup mul exch dup mul add 1    exch sub} 
  142.                     { 2 copy add 1.25 le 
  143.                       {.85 mul add 1 exch sub} 
  144.                     {1 sub dup mul exch 1 sub dup mul    add 1 sub} ifelse
  145.                     } ifelse
  146.         } bind def
  147.  
  148. %@Spot
  149. /Diamond2 %Diamante2
  150.         { %def --SPOT FUNCTION : DIAMOND2
  151.           abs exch abs add 1 exch sub
  152.         } bind def
  153.  
  154. %@Spot
  155. /MicroWaves %MicroOndas
  156.         { %def --SPOT FUNCTION : MICROWAVES
  157.           /wy exch def
  158.           180 mul cos 2 div wy dup dup dup mul mul sub mul wy add
  159.           180 mul cos
  160.         } bind def
  161.  
  162. %@Spot
  163. /Grid %Rejilla
  164.         { %def --SPOT FUNCTION : A SQUARE GRID
  165.           2 copy abs exch abs gt 
  166.                     {exch} if
  167.           pop 2 mul 1 exch sub 3.5 div
  168.         } bind def
  169.  
  170. %@Spot
  171. /Lines %Lφneas
  172.         { %def --SPOT FUNCTION : STRAIGHT LINES
  173.           pop abs 2 mul 1 exch sub
  174.         } bind def
  175.  
  176.  
  177. %@Spot
  178. /Star %Star
  179.            { %def --SPOT FUNCTION : Star
  180.              abs exch abs 2 copy gt {exch} if
  181.              1  sub dup 0 eq { 0.01 add } if
  182.              atan 360 div
  183.            } bind def
  184.  
  185. %@Spot
  186. /Euclidean %Euclideana
  187.         { %def --SPOT FUNCTION : EUCLIDEAN composite dot
  188.                   abs exch abs 2 copy add 1 gt 
  189.                     {1 sub dup mul exch 1 sub dup mul add 1 sub} 
  190.                     {dup mul exch dup mul add 1 exch sub} ifelse
  191.         } bind def
  192.  
  193. %@Spot
  194. /Rhomboid %Romboide
  195.              { %def --SPOT FUNCTION : RHOMBOID
  196.                   abs exch abs .9 mul add 2 div
  197.         } bind def
  198.  
  199. %@Spot
  200. /Round %Round
  201.              { %def --SPOT FUNCTION : Round
  202.          abs exch abs 2 copy add 1 le
  203.          { dup mul exch dup mul add 1 exch sub }
  204.          { 1 sub dup mul exch 1 sub dup mul add 1 sub } ifelse
  205.         } bind def
  206.  
  207. %@Spot
  208. /Ellipse %Ellipse
  209.              { %def --SPOT FUNCTION : Ellipse
  210.           abs exch abs 2 copy 3 mul exch 4 mul add 3 sub dup 0 lt
  211.           { pop dup mul exch .75 div dup mul add 4 div 1 exch sub }
  212.           { dup 1 gt
  213.             { pop 1 exch sub dup mul exch 1 exch sub
  214.               .75 div dup mul add 4 div 1 sub }
  215.             { .5 exch sub exch pop exch pop } ifelse
  216.                     } ifelse
  217.                 } bind def
  218.  
  219. %@Spot
  220. /EllipseA %EllipseA
  221.              { %def --SPOT FUNCTION : EllipseA
  222.                  dup mul .9 mul exch dup mul add 1 exch sub
  223.         } bind def
  224.  
  225. %@Spot
  226. /InvertedEllipseA %InvertedEllipseA
  227.              { %def --SPOT FUNCTION : InvertedEllipseA
  228.                  dup mul .9 mul exch dup mul add 1 sub
  229.         } bind def
  230.  
  231. %@Spot
  232. /EllipseB %EllipseB
  233.              { %def --SPOT FUNCTION : EllipseB
  234.           dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub
  235.         } bind def
  236.  
  237. %@Spot
  238. /EllipseC %EllipseC
  239.              { %def --SPOT FUNCTION : EllipseC
  240.                   dup mul .9 mul exch dup mul add 1 exch sub
  241.         } bind def
  242.  
  243. %@Spot
  244. /InvertedEllipseC %InvertedEllipseC
  245.              { %def --SPOT FUNCTION : InvertedEllipseC
  246.                   dup mul .9 mul exch dup mul add 1 sub
  247.         } bind def
  248.  
  249. %@Spot
  250. /LineX %LineX
  251.              { %def --SPOT FUNCTION : LineX
  252.                   pop
  253.         } bind def
  254.  
  255. %@Spot
  256. /LineY %LineY
  257.              { %def --SPOT FUNCTION : LineY
  258.                   exch pop
  259.         } bind def
  260.  
  261. %@Spot
  262. /Square %Square
  263.              { %def --SPOT FUNCTION : Square
  264.           abs exch abs 2 copy lt { exch } if pop neg
  265.         } bind def
  266.  
  267. %@Spot
  268. /Cross %Cross
  269.              { %def --SPOT FUNCTION : Cross
  270.           abs exch abs 2 copy gt { exch } if pop neg
  271.         } bind def
  272.  
  273. %@Spot
  274. /DoubleDot %DoubleDot
  275.              { %def --SPOT FUNCTION : DoubleDot
  276.           2 {360 mul sin 2 div exch } repeat add
  277.         } bind def
  278.  
  279. %@Spot
  280. /InvertedDoubleDot %InvertedDoubleDot
  281.              { %def --SPOT FUNCTION : InvertedDoubleDot
  282.           2 {360 mul sin 2 div exch } repeat add neg
  283.         } bind def
  284.  
  285. %@Spot
  286. /CosineDot %CosineDot
  287.              { %def --SPOT FUNCTION : CosineDot
  288.           180 mul cos exch 180 mul cos add 2 div
  289.         } bind def
  290.  
  291. %@Spot
  292. /Double %Double 
  293.              { %def --SPOT FUNCTION : Double
  294.                   exch 2 div exch 
  295.                     2 { 360 mul sin 2 div exch } repeat add
  296.         } bind def
  297.  
  298. %@Spot
  299. /InvertedDouble %InvertedDouble
  300.              { %def --SPOT FUNCTION : InvertedDouble
  301.                   exch 2 div exch 
  302.                     2 { 360 mul sin 2 div exch } repeat add neg
  303.         } bind def
  304.  
  305.  
  306. %----------------------------------------------------------------------------
  307.  
  308. %@Fill
  309. /Archimedes %Arquφmedes,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  310.    {
  311.    /BackgroundGray exch -1 100 InRange def
  312.    /ForegroundGray exch 0 100 InRange def
  313.    /Linewidth      exch 0 100 InRange def
  314.    /Frequency      exch 2 100 InRange def
  315.  
  316.    /newfont 10 dict def
  317.    newfont begin
  318.  
  319.    /FontMatrix [0.3660 0 0
  320.                 0.3660 0 0] def
  321.    /FontType 3 def
  322.    /FontBBox [0 0 2.7320 2.7320] def
  323.    /Encoding 256 array def
  324.    0 1 255 {Encoding exch /.notdef put} for
  325.  
  326.    /BuildChar
  327.      { 2.7320  0
  328.        -0.1 -0.1 2.8320 2.8320
  329.        setcachedevice
  330.        pop begin
  331.  
  332.        0 0 moveto
  333.        0.5 0 lineto
  334.        0 0.8660 lineto
  335.        0.866 1.366 lineto
  336.        0 1.866 lineto
  337.        0 0.866 lineto
  338.  
  339.        0 1.866 moveto
  340.        0.5 2.7320 lineto
  341.        1.3660 2.2320 lineto
  342.        0.8660 1.3660 lineto
  343.        1.8660 1.3660 lineto
  344.        1.3660 2.2320 lineto
  345.        2.2320 2.7320 lineto
  346.        2.7320 1.8660 lineto
  347.        1.8660 1.3660 lineto
  348.        2.7320 0.8660 lineto
  349.        2.2320 0 lineto
  350.        1.3660 0.5 lineto
  351.        1.8660 1.3660 lineto
  352.  
  353.        1.3660 2.7320 moveto
  354.        1.3660 2.2320 lineto
  355.  
  356.        1.3660 0  moveto
  357.        1.3660 0.5 lineto
  358.  
  359.        0.5  0 moveto
  360.        1.3660 0.5 lineto
  361.        0.8660 1.3660 lineto
  362.  
  363.        2.2320 0 moveto
  364.        2.7320 0 lineto
  365.  
  366.        2.2320 2.7320 moveto
  367.        2.7320 2.7320 lineto
  368.  
  369.        0 2.7320 moveto
  370.        0.5 2.7320 lineto
  371.  
  372.        2.7320 0.8660 moveto
  373.        2.7320 1.8660 lineto
  374.  
  375.        Linewidth pntsize div 2.7320 mul setlinewidth
  376.        stroke
  377.        end
  378.      } def
  379.    end
  380.  
  381.    /pntsize 2000 Frequency div def
  382.    /FillFont newfont definefont pop
  383.    /FillFont findfont pntsize scalefont setfont
  384.  
  385.    eoclip
  386.    BackgroundGray 0 ge
  387.       { BackgroundGray 100 div 1 exch sub setgray fill }
  388.       { newpath } ifelse
  389.  
  390.    ForegroundGray 100 div 1 exch sub setgray
  391.  
  392.    Bblly pntsize Bbury
  393.      { Bbllx pntsize Bburx
  394.        { 1 index moveto
  395.        (a) show
  396.        } for
  397.      pop
  398.      } for
  399.    } bind def
  400.  
  401. %@Fill
  402. /Bars %Barras,4, Ancho:=10, Espaciadoá(%):=100, GrisáMßximo:=100, GrisáMφnimo:=10
  403.    {
  404.    /MinGrey exch 0 100 InRange def
  405.    /MaxGrey exch MinGrey 100 InRange def
  406.    /Spacing exch 0 300 InRange def
  407.    /Width exch 1 100 InRange def
  408.  
  409.    /dgrey MaxGrey MinGrey sub def
  410.    /inc 1 Spacing 100 div add def
  411.  
  412.    eoclip newpath
  413.  
  414.    currentscreen
  415.    3 -1 roll
  416.    pop 90
  417.    3 1 roll
  418.    setscreen
  419.  
  420.    Bbllx Bblly translate
  421.    /dx Bburx Bbllx sub Width div def
  422.    /dy Bbury Bblly sub Width div def
  423.    Width 10 mul dup scale
  424.    /mtx matrix currentmatrix def
  425.    .05 setlinewidth
  426.  
  427.    0 inc dx
  428.      { 0 translate
  429.       -.5 .05 .5
  430.          { dup 0 moveto
  431.            dup dy lineto
  432.            dup mul 0.250001 exch sub sqrt 2 mul
  433.            dgrey mul MaxGrey exch sub 100 div 1 exch sub setgray
  434.            stroke
  435.          } for
  436.       mtx setmatrix
  437.       } for
  438.    dx 0 translate
  439.    90 rotate
  440.    /mtx matrix currentmatrix def
  441.    0 inc dy
  442.      { 0 translate
  443.       -.5 .05 .5
  444.          { dup 0 moveto
  445.            dup dx lineto
  446.            dup mul 0.250001 exch sub sqrt 2 mul
  447.            dgrey mul MaxGrey exch sub 100 div 1 exch sub setgray
  448.            stroke
  449.          } for
  450.       mtx setmatrix
  451.       } for
  452.    } bind def
  453.  
  454. %@Fill
  455. /Basketweave %CestaEntrelazada,4, Frecuencia:=6, AnchoáLφnea:=10, Grisá1eráPlano:=100, AnchoáOndaá(%):=100
  456.    {
  457.    /Width exch 1 200 InRange def
  458.    /Grey exch 0 100 InRange def
  459.    /LineWidth exch 0 100 InRange def
  460.    /Frequency exch 1 100 InRange def
  461.  
  462.    /dif Width 100 sub 100 div def
  463.  
  464.    /newfont 10 dict def
  465.    newfont begin
  466.  
  467.    /FontMatrix [.25  0
  468.                 0    .25
  469.                 0    0] def
  470.    /FontType 3 def
  471.    /FontBBox [0 0 4 4] def
  472.    /Encoding 256 array def
  473.    0 1 255 {Encoding exch /.notdef put} for
  474.    Encoding 97 /Holes put
  475.    Encoding 98 /Weave put
  476.  
  477.    /CharProcs 3 dict def
  478.    CharProcs begin
  479.    /.notdef {} def
  480.    /Holes
  481.       {
  482.       1 dif moveto
  483.       2 dif sub 1 lineto
  484.       1 2 dif sub lineto
  485.       dif 1 lineto
  486.       closepath
  487.       fill
  488.  
  489.       3 2 dif add moveto
  490.       4 dif sub 3 lineto
  491.       3 4 dif sub lineto
  492.       2 dif add 3 lineto
  493.       closepath
  494.       fill
  495.       } def
  496.    /Weave
  497.       {
  498.       0 3 dif add moveto
  499.       1 dif sub 4 lineto
  500.  
  501.       0 1 dif add moveto
  502.       1 dif lineto
  503.  
  504.       3 dif sub 4 moveto
  505.       4 dif sub 3 lineto
  506.  
  507.       1 dif sub 0 moveto
  508.       2 dif sub 1 lineto
  509.  
  510.       4 3 dif add moveto
  511.       3 2 dif add lineto
  512.  
  513.       3 dif sub 0 moveto
  514.       1 2 dif sub lineto
  515.  
  516.       4 1 dif add moveto
  517.       2 dif add 3 lineto
  518.  
  519.       dif 1 moveto
  520.       3 4 dif sub lineto
  521.  
  522.       LineWidth 100 div setlinewidth
  523.       stroke
  524.       } def
  525.    end
  526.  
  527.    /BuildChar
  528.      { 4  0
  529.        -0.1 -0.1 4.1 4.1
  530.        setcachedevice
  531.        exch begin
  532.        Encoding exch get
  533.        CharProcs exch get
  534.        end
  535.        exec
  536.      } def
  537.    end
  538.  
  539.    /pntsize 1000 Frequency div def
  540.  
  541.    /FillFont newfont definefont pop
  542.    /FillFont findfont pntsize scalefont setfont
  543.  
  544.    eoclip newpath
  545.  
  546.    Grey 100 div 1 exch sub setgray
  547.    Bblly pntsize Bbury
  548.      { Bbllx exch moveto
  549.        { (a) show
  550.          currentpoint
  551.          pop Bburx gt
  552.          {exit} if
  553.        } loop
  554.      } for
  555.  
  556.    0 setgray
  557.    Bblly pntsize Bbury
  558.      { Bbllx exch moveto
  559.        { (b) show
  560.          currentpoint
  561.          pop Bburx gt
  562.          {exit} if
  563.        } loop
  564.      } for
  565.  
  566.    } bind def
  567.  
  568. %@Fill
  569. /Birds %Pßjaros,4, Frecuencia:=8, AnchoáLφnea:=4, Grisá1eráPlano:=100, GrisáFondo:=0
  570.    {
  571.    /BackgroundGray exch -1 100 InRange def
  572.    /ForegroundGray exch 0 100 InRange def
  573.    /Linewidth      exch 0 100 InRange def
  574.    /Frequency      exch 2 100 InRange def
  575.  
  576.    /newfont 10 dict def
  577.    newfont begin
  578.  
  579.    /FontMatrix [0.0061  0
  580.                 0         0.0061
  581.                 0         0] def
  582.    /FontType 3 def
  583.    /FontBBox [-92 -150 46 12] def
  584.    /Encoding 256 array def
  585.    0 1 255 {Encoding exch /.notdef put} for
  586.  
  587.    /BuildChar
  588.      { 138  0
  589.        -92 -150 46 12
  590.        setcachedevice
  591.        pop begin
  592.  
  593.        2 {
  594.          gsave
  595.          3 {
  596.            -10 -8 moveto
  597.            60 24  -54 60  -9 72 curveto
  598.            -2.5 73.7  11.5 70.3  29 75.4 curveto
  599.  
  600.            -54 6 moveto
  601.            -45 14  -27 16  -18 18 curveto
  602.            27 27  -81 54  -9 90 curveto
  603.  
  604.            -126 9 moveto
  605.            -114 27  -66 66  -54 24 curveto
  606.            -53 21  -49 15  -43 12 curveto
  607.  
  608.            [ -1     0
  609.               0     1
  610.               0     0 ] concat
  611.              135 -81 translate
  612.          } repeat
  613.  
  614.        Linewidth pntsize div 162 mul setlinewidth
  615.        stroke
  616.        grestore
  617.        138 0 translate
  618.  
  619.      } repeat
  620.  
  621.      end
  622.      } def
  623.    end
  624.  
  625.    /pntsize 1174 Frequency div def
  626.  
  627.    /FillFont newfont definefont pop
  628.    /FillFont findfont pntsize scalefont setfont
  629.  
  630.    eoclip
  631.    BackgroundGray 0 ge
  632.       { BackgroundGray 100 div 1 exch sub setgray fill }
  633.       { newpath } ifelse
  634.  
  635.    ForegroundGray 100 div 1 exch sub setgray
  636.  
  637.    /urx Bburx pntsize add def
  638.    /ury Bbury pntsize add def
  639.     Bblly pntsize ury
  640.         { Bbllx exch moveto
  641.         { (a) show
  642.           currentpoint
  643.           pop urx gt
  644.           {exit} if
  645.         } loop
  646.       } for
  647.     } bind def
  648.  
  649. %@Fill
  650. /Bricks %Ladrillos,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  651.    {
  652.    /BackgroundGray exch -1 100 InRange def
  653.    /ForegroundGray exch 0 100 InRange def
  654.    /Linewidth      exch 0 100 InRange def
  655.    /Frequency      exch 2 100 InRange def
  656.  
  657.    /newfont 10 dict def
  658.    newfont begin
  659.  
  660.    /FontMatrix [1  0  0
  661.                 1  0  0] def
  662.    /FontType 3 def
  663.    /FontBBox [0 0 1 1] def
  664.    /Encoding 256 array def
  665.    0 1 255 {Encoding exch /.notdef put} for
  666.  
  667.    /BuildChar
  668.      { 1  0
  669.        -0.1 -0.1 1.1 1.1
  670.        setcachedevice
  671.        pop begin
  672.  
  673.        0 0 moveto
  674.        1 0 lineto
  675.        1 .5 lineto
  676.        0 .5 lineto
  677.        closepath
  678.        .5 .5 moveto
  679.        .5 1 lineto
  680.  
  681.        Linewidth pntsize div setlinewidth
  682.        stroke
  683.  
  684.       end
  685.      } def
  686.    end
  687.  
  688.    /pntsize 1000 Frequency div def
  689.  
  690.    /FillFont newfont definefont pop
  691.    /FillFont findfont pntsize scalefont setfont
  692.  
  693.    eoclip
  694.    BackgroundGray 0 ge
  695.       { BackgroundGray 100 div 1 exch sub setgray fill }
  696.       { newpath } ifelse
  697.  
  698.    ForegroundGray 100 div 1 exch sub setgray
  699.  
  700.    Bblly pntsize Bbury
  701.      { Bbllx exch moveto
  702.        { (a) show
  703.          currentpoint
  704.          pop Bburx gt
  705.          {exit} if
  706.        } loop
  707.      } for
  708.    } bind def
  709.  
  710. %@Fill
  711. /Bubbles %Burbujas,5, N·meroá(pulgadas2):=25, Tama±oáMßximo:=300, Tama±oáMφnimo:=10, AnchoáLφnea:=10, Funci≤náAleatoria:=0
  712.    { srand
  713.    /LineWidth exch 0 50 InRange def
  714.    /MinSize exch 1 1000 InRange def
  715.    /MaxSize exch MinSize 1000 InRange def
  716.    /Number exch 1 250 InRange def
  717.  
  718.    eoclip
  719.    newpath
  720.    /pntsize MaxSize MinSize div cvi def
  721.    /dx Bburx Bbllx sub def
  722.    /dy Bbury Bblly sub def
  723.  
  724.    dx dy mul Number mul 1000000 div cvi
  725.    {  rand dx mod Bbllx add
  726.       rand dy mod Bblly add
  727.       rand pntsize mod 1 add pntsize exch div MinSize mul
  728.       3 copy
  729.       2 index add
  730.       exch
  731.       moveto
  732.       pop
  733.       0 360 arc
  734.       gsave
  735.       0 setgray
  736.       LineWidth setlinewidth
  737.       stroke
  738.       grestore
  739.       1 setgray
  740.       fill
  741.       } repeat
  742.  
  743.    } bind def
  744.  
  745. %@Fill
  746. /Carpet %Alfombra,5, Frecuenciaá(dpi):=72, Gris:=100, Gammaá(TamáCuadro):=50, FactoráMod:=3, Alpha:=10
  747.    {
  748.    /Alpha exch def
  749.    /Modf exch def
  750.    /Gamma exch def
  751.    /Grey exch 0 100 InRange def
  752.    /Frequency exch 10 300 InRange def
  753.  
  754.    /Beta1 -10 def
  755.    /Beta2 -15 def
  756.  
  757.    eoclip newpath
  758.  
  759.    /wz 360 def
  760.    2 1 Gamma sqrt
  761.       { dup Gamma exch mod
  762.       0 eq { dup wz exch mod
  763.            0 eq { /wz wz 2 index div cvi def
  764.                 } if
  765.            } if
  766.       pop
  767.       } for
  768.  
  769.    /newfont 10 dict def
  770.    newfont begin
  771.  
  772.    /FontMatrix [1 wz div  0
  773.                 0          1 wz div
  774.                 0          0] def
  775.    /FontType 3 def
  776.    /FontBBox [0 0 wz wz] def
  777.    /Encoding 256 array def
  778.    0 1 255 {Encoding exch /.notdef put} for
  779.  
  780.    /BuildChar
  781.      { wz  0
  782.        -0.1 -0.1 wz 0.1 add wz 0.1 add
  783.        setcachedevice
  784.        pop begin
  785.  
  786.       0 1 wz
  787.          { 0 1 wz
  788.             { 1 index 2 copy
  789.             Gamma mul Beta2 add sin
  790.             exch Gamma mul Beta1 add sin
  791.             add Alpha mul cvi Modf mod
  792.             0 eq { moveto
  793.                   1 0 rlineto
  794.                   0 1 rlineto
  795.                   -1 0 rlineto
  796.                   closepath
  797.                   fill }
  798.                  { pop pop } ifelse
  799.             }   for
  800.          pop
  801.          } for
  802.  
  803.        end
  804.      } def
  805.    end
  806.  
  807.    /pntsize wz 1000 mul Frequency div def
  808.  
  809.    /FillFont newfont definefont pop
  810.    /FillFont findfont pntsize scalefont setfont
  811.  
  812.    Grey 100 div 1 exch sub setgray
  813.    Bblly pntsize Bbury
  814.      { Bbllx 1 index moveto
  815.        { (a) show
  816.          currentpoint
  817.          dup 3 index sub
  818.          pntsize 2 div gt { pntsize sub } if
  819.          1 index Bburx gt
  820.          {pop pop pop exit} if
  821.          moveto
  822.        } loop
  823.      } for
  824.    } bind def
  825.  
  826. %@Fill
  827. /CircleGrid %RejillaCircular,5, Frecuencia:=6, AnchoáLφnea1:=6, AnchoáLφnea2:=6, Gris1:=40, Gris2:=40
  828.    {
  829.    /Grey2 exch -1 100 InRange def
  830.    /Grey1 exch -1 100 InRange def
  831.    /LineWidth2 exch 0 100 InRange def
  832.    /LineWidth1 exch 0 100 InRange def
  833.    /Frequency exch 1 72 InRange def
  834.  
  835.    /newfont 10 dict def
  836.    newfont begin
  837.  
  838.    /FontMatrix [0.1924  0
  839.                 0                   0.1924
  840.                 0                   0] def
  841.    /FontType 3 def
  842.    /FontBBox [0 0 2 5.1961] def
  843.  
  844.    /Encoding 256 array def
  845.    0 1 255 {Encoding exch /.notdef put} for
  846.    Encoding 97 /OneCircle put
  847.    Encoding 98 /OneCircleFilled put
  848.    Encoding 99 /TwoCircles put
  849.    Encoding 100 /TwoCirclesFilled put
  850.  
  851.    /CharProcs 5 dict def
  852.    CharProcs begin
  853.    /.notdef {} def
  854.    /OneCircle
  855.      { 1.8660  4.3301 moveto
  856.        1  4.3301  0.8660 0 360 arc
  857.  
  858.        LineWidth1 pntsize div 5.1961 mul setlinewidth
  859.        stroke
  860.    } def
  861.  
  862.    /OneCircleFilled
  863.      { 1.8660  4.3301 moveto
  864.        1  4.3301  0.8660 0 350 arc
  865.  
  866.        fill
  867.    } def
  868.  
  869.    /TwoCircles
  870.      { 1.8660 0.8660 moveto
  871.        1 3 sqrt 2 div dup 0 360 arc
  872.  
  873.        1.8660  2.5980 moveto
  874.        1  2.5980  0.8660 0 360 arc
  875.  
  876.        LineWidth2 pntsize div 5.1961 mul setlinewidth
  877.        stroke
  878.    } def
  879.  
  880.    /TwoCirclesFilled
  881.      { 1.8660 0.8660 moveto
  882.        1 3 sqrt 2 div dup 0 360 arc
  883.  
  884.        1.8660  2.5980 moveto
  885.        1  2.5980  0.8660 0 360 arc
  886.  
  887.        fill
  888.    } def
  889.  
  890.    end
  891.  
  892.    /BuildChar
  893.      {1.5  2.5980
  894.       -0.1 -0.1 2.1  5.2961
  895.       setcachedevice
  896.       exch begin
  897.       Encoding exch get
  898.       CharProcs exch get
  899.       end
  900.       exec
  901.      }def
  902.    end
  903.  
  904.    /pntsize 3000 Frequency div def
  905.  
  906.    /FillFont newfont definefont pop
  907.    /FillFont findfont pntsize scalefont setfont
  908.  
  909.    /Bbllx Bbllx pntsize sub def
  910.    /Bblly Bblly pntsize sub def
  911.    /Bburx Bburx pntsize add def
  912.    /Bbury Bbury pntsize add def
  913.  
  914.    eoclip newpath
  915.  
  916.    Grey1 0 ge
  917.       { Grey1 100 div 1 exch sub setgray
  918.       Bblly pntsize Bbury
  919.         { Bbllx 1 index moveto
  920.           { (b) show
  921.             currentpoint
  922.             dup 3 index sub
  923.             pntsize 2.1 div gt { pntsize sub } if
  924.             1 index Bburx gt
  925.             {pop pop pop exit} if
  926.             moveto
  927.           } loop
  928.        } for
  929.       } if
  930.  
  931.    Grey2 0 ge
  932.       { Grey2 100 div 1 exch sub setgray
  933.       Bblly pntsize Bbury
  934.         { Bbllx 1 index moveto
  935.           { (d) show
  936.             currentpoint
  937.             dup 3 index sub
  938.             pntsize 2.1 div gt { pntsize sub } if
  939.             1 index Bburx gt
  940.             {pop pop pop exit} if
  941.             moveto
  942.           } loop
  943.         } for
  944.       } if
  945.  
  946.    LineWidth1 0 gt
  947.       { 0 setgray
  948.       Bblly pntsize Bbury
  949.         { Bbllx 1 index moveto
  950.           { (a) show
  951.             currentpoint
  952.             dup 3 index sub
  953.             pntsize 2.1 div gt { pntsize sub } if
  954.             1 index Bburx gt
  955.             {pop pop pop exit} if
  956.             moveto
  957.           } loop
  958.         } for
  959.       } if
  960.  
  961.    LineWidth2 0 gt
  962.       { 0 setgray
  963.       Bblly pntsize Bbury
  964.         { Bbllx 1 index moveto
  965.           { (c) show
  966.             currentpoint
  967.             dup 3 index sub
  968.             pntsize 2.1 div gt { pntsize sub } if
  969.             1 index Bburx gt
  970.             {pop pop pop exit} if
  971.             moveto
  972.           } loop
  973.         } for
  974.       } if
  975.  
  976.    } bind def
  977.  
  978. %@Fill
  979. /Construction %Construcci≤n,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  980.    {
  981.    /BackgroundGray exch -1 100 InRange def
  982.    /ForegroundGray exch 0 100 InRange def
  983.    /Linewidth      exch 0 100 InRange def
  984.    /Frequency      exch 2 100 InRange def
  985.  
  986.    /newfont 10 dict def
  987.    newfont begin
  988.  
  989.    /FontMatrix  [ .1     0
  990.                   0      .1
  991.                   0      0] def
  992.    /FontType 3 def
  993.    /FontBBox [-1 -1 9.66 11] def
  994.    /Encoding 256 array def
  995.    0 1 255 {Encoding exch /.notdef put} for
  996.  
  997.    /BuildChar
  998.      { 8.66 5
  999.        -1 -1 9.66 11
  1000.        setcachedevice
  1001.        pop begin
  1002.  
  1003.        1 0 moveto
  1004.        0 0 1 -60 300 arc
  1005.        9.1602  4.1339 lineto
  1006.        8.6602  5  1  -60 420 arc
  1007.        .5  10.866 lineto
  1008.        0 10 1 60 180 arc
  1009.        -1 0 lineto
  1010.  
  1011.        -.5 3 sqrt 2 div moveto
  1012.        8.1602 5.8660 lineto
  1013.        8.1602  4.1339 moveto
  1014.        -.5  9.134 lineto
  1015.        1 10 moveto
  1016.        1 0 lineto
  1017.  
  1018.        Linewidth pntsize div 10 mul setlinewidth
  1019.        stroke
  1020.       end
  1021.      } def
  1022.    end
  1023.  
  1024.    /pntsize 1126 Frequency div def
  1025.    /FillFont newfont definefont pop
  1026.    /FillFont findfont pntsize scalefont setfont
  1027.  
  1028.    /Bbllx Bbllx pntsize sub def
  1029.  
  1030.    eoclip
  1031.    BackgroundGray 0 ge
  1032.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1033.       { newpath } ifelse
  1034.  
  1035.    ForegroundGray 100 div 1 exch sub setgray
  1036.  
  1037.    Bblly pntsize Bbury
  1038.      { Bbllx 1 index moveto
  1039.        { (a) show
  1040.          currentpoint
  1041.          dup 3 index sub
  1042.          pntsize 2.1 div gt { pntsize sub } if
  1043.          1 index Bburx gt
  1044.          {pop pop pop exit} if
  1045.          moveto
  1046.        } loop
  1047.      } for
  1048.    } bind def
  1049.  
  1050. %@Fill
  1051. /Cracks %Grietas,5, N·mero:=20, LongáMßx:=125, LongáMφn:=75, LongáEtapa:=14, AnchoáLφnea:=5
  1052.    {
  1053.    /LineWidth exch 0 100 InRange def
  1054.    /StepLength exch 1 100 InRange def
  1055.    /MinLength exch 1 300 InRange def
  1056.    /MaxLength exch MinLength 300 InRange MinLength wDstChck def
  1057.    /Number exch 1 100 InRange def
  1058.  
  1059.    eoclip newpath
  1060.  
  1061.    /dx Bburx Bbllx sub def
  1062.    /dy Bbury Bblly sub def
  1063.  
  1064.    Number {
  1065.       gsave
  1066.       /theta rand 360 mod def
  1067.  
  1068.       rand dx mod Bbllx add
  1069.       rand dy mod Bblly add
  1070.       moveto
  1071.  
  1072.       StepLength dup scale
  1073.       LineWidth StepLength div setlinewidth
  1074.  
  1075.       MinLength
  1076.       MaxLength MinLength sub
  1077.       rand 1 index mod 2 index add
  1078.          {
  1079.          currentpoint translate
  1080.          rand 120 mod 60 sub theta add dup rotate
  1081.          0 0 moveto
  1082.          1 0 lineto
  1083.          stroke
  1084.          1 0 moveto
  1085.          neg rotate
  1086.          } repeat
  1087.       grestore
  1088.       pop pop
  1089.       } repeat
  1090.    } bind def
  1091.  
  1092. %@Fill
  1093. /Craters %Crßteres,5, N·mero:=15, Tama±oáMßximo:=300, Tama±oáMφnimo:=75, GrisáFondo:=0, Funci≤náAleatoria:=0
  1094.    { srand
  1095.    /BackgroundGrey exch 0 100 InRange def
  1096.    /MinSize exch 1 500 InRange def
  1097.    /MaxSize exch MinSize 500 InRange MinSize wDstChck def
  1098.    /Number exch 1 50 InRange def
  1099.  
  1100.    eoclip
  1101.    BackgroundGrey 100 div 1 exch sub setgray
  1102.    fill
  1103.  
  1104.    /pntsize 333 def
  1105.    /dx Bburx Bbllx sub def
  1106.    /dy Bbury Bblly sub def
  1107.    /DifSize MaxSize MinSize sub cvi def
  1108.  
  1109.    Bbllx Bblly translate
  1110.  
  1111.    matrix currentmatrix
  1112.    dx dy mul 1000000 div Number mul cvi {
  1113.       dup
  1114.       rand dx mod  rand dy mod  translate
  1115.       /size rand DifSize mod MinSize add def
  1116.       0 0 size .7 mul  0 360 arc
  1117.       BackgroundGrey 100 div 1 exch sub setgray fill
  1118.  
  1119.       0
  1120.          { rand 18 mod add 10 add
  1121.          dup 360 gt { pop exit } if
  1122.          dup rotate
  1123.          size 5 div  0 moveto
  1124.          rand 300 mod 200 add 500 div size mul  0 lineto
  1125.          dup neg rotate
  1126.          } loop
  1127.  
  1128.       0 setgray
  1129.       5 setlinewidth
  1130.       stroke
  1131.       setmatrix
  1132.       } repeat
  1133.    pop
  1134.    } bind def
  1135.  
  1136. %@Fill
  1137. /Crosshatching %RayadoEnCruz,5, Dist.áMßxima:=75, Dist.áMφnima:=0, AnchoáLφnea:=5, Angulo:=45, Funci≤náAleatoria:=0
  1138.    { srand
  1139.    /Angle exch -180 180 InRange def
  1140.    /LineWidth exch 0 100 InRange def
  1141.    /MinDist exch 0 500 InRange def
  1142.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  1143.  
  1144.    eoclip
  1145.    newpath
  1146.  
  1147.    /pntsize MaxDist MinDist sub def
  1148.    /dx2 Bburx Bbllx sub 2 div def
  1149.    /dy2 Bbury Bblly sub 2 div def
  1150.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  1151.  
  1152.    Bbllx Bblly translate
  1153.    dx2 dy2 translate
  1154.    Angle rotate
  1155.    LineWidth setlinewidth
  1156.  
  1157.    /wd hyp2 neg def
  1158.       { /wd rand pntsize mod MinDist add wd add def
  1159.       wd hyp2 neg moveto
  1160.       wd hyp2 lineto
  1161.       stroke
  1162.       wd hyp2 gt {exit} if
  1163.       } loop
  1164.  
  1165.    Angle -2 mul rotate
  1166.    /wd hyp2 neg def
  1167.       { /wd rand pntsize mod MinDist add wd add def
  1168.       wd hyp2 neg moveto
  1169.       wd hyp2 lineto
  1170.       stroke
  1171.       wd hyp2 gt {exit} if
  1172.       } loop
  1173.  
  1174.    } bind def
  1175.  
  1176. %@Fill
  1177. /CrystalLattice %Enrejado,4, Frecuencia:=4, GrisáFondo:=100, Grisá1eráPlano:=0, Escalaá(%):=75
  1178.    {
  1179.    /Scaling exch 10 100 InRange def
  1180.    /FrontGrey exch 0 100 InRange def
  1181.    /BackGrey exch -100 100 InRange def
  1182.    /Frequency exch 1 50 InRange def
  1183.  
  1184.    /newfont 10 dict def
  1185.    newfont begin
  1186.  
  1187.    /FontMatrix [1                   0
  1188.                 0                   1
  1189.                 0                   0] def
  1190.    /FontType 3 def
  1191.    /FontBBox [0 0 1 1] def
  1192.    /Encoding 256 array def
  1193.    0 1 255 {Encoding exch /.notdef put} for
  1194.  
  1195.    /BuildChar
  1196.      { 1 0
  1197.        -0.1 -0.1 1.1 1.1
  1198.        setcachedevice
  1199.        pop begin
  1200.  
  1201.        gsave
  1202.        0 0 moveto
  1203.        3 { 1 0 lineto
  1204.          currentpoint translate
  1205.          90 rotate
  1206.          } repeat
  1207.        closepath
  1208.        .05 setlinewidth
  1209.        stroke
  1210.        grestore
  1211.  
  1212.        gsave
  1213.        4 { .2 0 moveto
  1214.          0 0 .2 0 360 arc
  1215.          fill
  1216.          1 0 translate
  1217.          90 rotate
  1218.          } repeat
  1219.        grestore
  1220.  
  1221.        end
  1222.      } def
  1223.    end
  1224.  
  1225.    /pntsize 1000 Frequency div cvi def
  1226.  
  1227.    /FillFont newfont definefont pop
  1228.    /FillFont findfont pntsize scalefont setfont
  1229.  
  1230.    /dx Bburx Bbllx sub def
  1231.    /dy Bbury Bblly sub def
  1232.  
  1233.    eoclip newpath
  1234.  
  1235.    currentscreen
  1236.    3 -1 roll
  1237.    pop 120
  1238.    3 1 roll
  1239.    setscreen
  1240.  
  1241.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1242.  
  1243.    /dx dx 100 mul Scaling div def
  1244.    /dy dy 100 mul Scaling div def
  1245.  
  1246.    Scaling 100 div dup scale
  1247.    100 Scaling div log 10 div 10 exch exp
  1248.    BackGrey 0 100 InRange 100 div  FrontGrey BackGrey sub 1000 div  FrontGrey .1 sub 100 div
  1249.       { 1 exch sub setgray
  1250.       dup dup scale
  1251.       dy 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1252.         pntsize   dy pntsize add 2 div
  1253.         { dx 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1254.           1 index moveto
  1255.           { (a) show
  1256.             currentpoint
  1257.             dup 3 index sub
  1258.             pntsize 2.1 div gt { pntsize sub } if
  1259.             1 index dx pntsize add 2 div gt
  1260.             { pop pop pop exit } if
  1261.             moveto
  1262.           } loop
  1263.         } for
  1264.       } for
  1265.       pop
  1266.    } bind def
  1267.  
  1268. %@Fill
  1269. /Denim %Tela,5, Frecuencia:=72, GrisáMßximo:=100, GrisáMφnimo:=0, TramaáMedáTonos:=60, Funci≤náAleatoria:=0
  1270.    { srand
  1271.    /Screen exch 30 300 InRange def
  1272.    /MinGrey exch 0 100 InRange def
  1273.    /MaxGrey exch MinGrey 100 InRange def
  1274.    /Frequency exch 1 300 InRange def
  1275.  
  1276.    eoclip newpath
  1277.  
  1278.    currentscreen
  1279.    3 -1 roll
  1280.    pop Screen
  1281.    3 1 roll
  1282.    setscreen
  1283.  
  1284.    /dx Bburx Bbllx sub def
  1285.    /dy Bbury Bblly sub def
  1286.    /wf Frequency 1000 div def
  1287.    /dgrey MaxGrey MinGrey sub 100 div def
  1288.  
  1289.    Bbllx Bblly translate
  1290.    /str 512 string def
  1291.  
  1292.    dx wf mul cvi 1 add  dy wf mul cvi 1 add  8  [wf 0 0 wf 0 0]
  1293.       { dgrey MinGrey 2.55 mul
  1294.       0 1 511
  1295.          { str exch
  1296.          rand -11 bitshift 255 and 4 index mul 3 index add cvi
  1297.          put
  1298.          } for
  1299.       pop pop
  1300.       str
  1301.      }image
  1302.  
  1303.    } bind def
  1304.  
  1305. %@Fill
  1306. /DNA %ADN,5, Frecuencia:=4, AnchoáLφnea:=1, Grisá1eráPlano:=100, GrisáFondo:=0, Espaciadoá(%):=100
  1307.    {
  1308.    /Spacing        exch 1 300 InRange def
  1309.    /BackgroundGray exch -1 100 InRange def
  1310.    /ForegroundGray exch 0 100 InRange def
  1311.    /Linewidth      exch 0 100 InRange def
  1312.    /Frequency      exch 1 100 InRange def
  1313.  
  1314.    /newfont 10 dict def
  1315.    newfont begin
  1316.  
  1317.    /FontMatrix [1 360 div             0
  1318.                 0                   1 360 div
  1319.                 0                   0] def
  1320.    /FontType 3 def
  1321.    /FontBBox [-20 0 20 360] def
  1322.    /Encoding 256 array def
  1323.    0 1 255 {Encoding exch /.notdef put} for
  1324.  
  1325.    /BuildChar
  1326.      { Spacing 110
  1327.        -20  0 20 360
  1328.        setcachedevice
  1329.        pop begin
  1330.  
  1331.        Linewidth pntsize mul 110 div setlinewidth
  1332.        0 0 moveto
  1333.        0 1 360
  1334.           { dup sin 20 mul exch lineto
  1335.           } for
  1336.        stroke
  1337.        20 0 moveto
  1338.        0 1 360
  1339.           { dup cos 20 mul exch lineto
  1340.           } for
  1341.        stroke
  1342.        0 20 360
  1343.           { dup dup sin 20 mul exch moveto
  1344.           dup cos 20 mul exch lineto
  1345.           } for
  1346.        stroke
  1347.  
  1348.        end
  1349.      } def
  1350.    end
  1351.  
  1352.    /pntsize 2000 Frequency div def
  1353.  
  1354.    /FillFont newfont definefont pop
  1355.    /FillFont findfont pntsize scalefont setfont
  1356.  
  1357.    eoclip
  1358.    BackgroundGray 0 ge
  1359.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1360.       { newpath } ifelse
  1361.  
  1362.    ForegroundGray 100 div 1 exch sub setgray
  1363.  
  1364.    Bblly pntsize sub pntsize Bbury pntsize add
  1365.      { Bbllx 1 index moveto
  1366.        { (a) show
  1367.          currentpoint
  1368.          dup 3 index sub
  1369.          pntsize 2.1 div gt { pntsize sub } if
  1370.          1 index Bburx gt
  1371.          {pop pop pop exit} if
  1372.          moveto
  1373.        } loop
  1374.      } for
  1375.    } bind def
  1376.  
  1377. %@Fill
  1378. /Fishscale %Escamas,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  1379.    {
  1380.    /BackgroundGray exch -1 100 InRange def
  1381.    /ForegroundGray exch 0 100 InRange def
  1382.    /Linewidth      exch 0 100 InRange def
  1383.    /Frequency      exch 2 100 InRange def
  1384.  
  1385.    /newfont 10 dict def
  1386.    newfont begin
  1387.  
  1388.    /FontMatrix [1  0  0
  1389.                 1  0  0] def
  1390.    /FontType 3 def
  1391.    /FontBBox [0 0 1 1] def
  1392.    /Encoding 256 array def
  1393.    0 1 255 {Encoding exch /.notdef put} for
  1394.  
  1395.    /BuildChar
  1396.      { 1  0
  1397.        0 0 1 1
  1398.        setcachedevice
  1399.        pop begin
  1400.  
  1401.        0.5 0.5 0.5 360 180 arcn
  1402.        0 1 0.5 270 360 arc
  1403.        1 1 0.5 180 270 arc
  1404.  
  1405.        Linewidth pntsize div setlinewidth
  1406.        stroke
  1407.  
  1408.       end
  1409.      } def
  1410.    end
  1411.  
  1412.    /pntsize 1000 Frequency div def
  1413.    /FillFont newfont definefont pop
  1414.    /FillFont findfont pntsize scalefont setfont
  1415.  
  1416.    eoclip
  1417.    BackgroundGray 0 ge
  1418.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1419.       { newpath } ifelse
  1420.  
  1421.    ForegroundGray 100 div 1 exch sub setgray
  1422.  
  1423.     Bblly pntsize Bbury
  1424.       { Bbllx exch moveto
  1425.         { (a) show
  1426.           currentpoint
  1427.           pop Bburx gt
  1428.           {exit} if
  1429.         } loop
  1430.       } for
  1431.     } bind def
  1432.  
  1433.  
  1434. %@Fill
  1435. /Grass %Hierba,5, N·mero:=100, Tama±oáMßximo:=35, Tama±oáMφnimo:=7, Gris:=0, Funci≤náAleatoria:=0
  1436.     { srand
  1437.     /Grey exch -1 100 InRange def
  1438.     /MinSize exch 1 100 InRange def
  1439.     /MaxSize exch MinSize 100 InRange MinSize wDstChck def
  1440.     /Number exch 1 500 InRange def
  1441.  
  1442.     eoclip
  1443.     Grey 0 ge
  1444.        { Grey 100 div 1 exch sub setgray fill }
  1445.        { newpath } ifelse
  1446.  
  1447.     /Bbllx Bbllx MaxSize sub def
  1448.     /Bblly Bblly MaxSize sub def
  1449.  
  1450.     /dx Bburx Bbllx sub def
  1451.     /dy Bbury Bblly sub def
  1452.     /dSize MaxSize MinSize sub def
  1453.  
  1454.     dx dy mul 1000000 div Number mul cvi
  1455.        {
  1456.  
  1457.        matrix currentmatrix
  1458.  
  1459.        rand dx mod Bbllx add
  1460.        rand dy mod Bblly add
  1461.        translate
  1462.  
  1463.        rand dSize mod MinSize add
  1464.        dup scale
  1465.  
  1466.        -0.5 0 moveto
  1467.        rand 14 mod 7 sub
  1468.        -0.5 3  2 index 3 div 0.3 sub 10  4 index 10 curveto
  1469.        3 div 0.3 add 10 0.5 3 0.5 0 curveto
  1470.        gsave
  1471.        1 setgray
  1472.        fill
  1473.        grestore
  1474.        0.1 setlinewidth
  1475.        0 setgray
  1476.        stroke
  1477.  
  1478.        setmatrix
  1479.  
  1480.        } repeat
  1481.  
  1482.      } bind def
  1483.  
  1484. %@Fill
  1485. /Hatching %Rayado,5, Dist.áMßxima:=75, Dist.áMφnima:=0, AnchoáLφnea:=5, Angulo:=45, Funci≤náAleatoria:=0
  1486.    { srand
  1487.    /Angle exch -180 180 InRange def
  1488.    /LineWidth exch 0 100 InRange def
  1489.    /MinDist exch 0 500 InRange def
  1490.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  1491.  
  1492.    eoclip
  1493.    newpath
  1494.  
  1495.    /pntsize MaxDist MinDist sub def
  1496.    /dx2 Bburx Bbllx sub 2 div def
  1497.    /dy2 Bbury Bblly sub 2 div def
  1498.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  1499.  
  1500.    Bbllx Bblly translate
  1501.    dx2 dy2 translate
  1502.    Angle rotate
  1503.    LineWidth setlinewidth
  1504.  
  1505.    /wd hyp2 neg def
  1506.  
  1507.       { /wd rand pntsize mod MinDist add wd add def
  1508.       wd hyp2 neg moveto
  1509.       wd hyp2 lineto
  1510.       stroke
  1511.       wd hyp2 gt {exit} if
  1512.       } loop
  1513.  
  1514.    } bind def
  1515.  
  1516. %@Fill
  1517. /Hexagons %Hexßgonos,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  1518.    {
  1519.    /BackgroundGray exch -1 100 InRange def
  1520.    /ForegroundGray exch 0 100 InRange def
  1521.    /LineWidth      exch 0 100 InRange def
  1522.    /Frequency      exch 2 100 InRange def
  1523.  
  1524.    /newfont 10 dict def
  1525.    newfont begin
  1526.  
  1527.    /FontMatrix [0.5773       0
  1528.                 0                   0.5773
  1529.                 0                   0] def
  1530.    /FontType 3 def
  1531.    /FontBBox [0 0 2 1.7320] def
  1532.    /Encoding 256 array def
  1533.    0 1 255 {Encoding exch /.notdef put} for
  1534.  
  1535.    /BuildChar
  1536.      { 1.5  0.8660
  1537.        -0.1 -0.1 2.1 1.8320
  1538.        setcachedevice
  1539.        pop begin
  1540.  
  1541.        0.5  0 moveto
  1542.        1.5  0 lineto
  1543.        2  0.8660 lineto
  1544.        1.5  1.7320 lineto
  1545.        0.5  1.7320 lineto
  1546.        0  0.8660  lineto
  1547.        closepath
  1548.  
  1549.        LineWidth pntsize div 1.7320 mul setlinewidth
  1550.        stroke
  1551.  
  1552.       end
  1553.      } def
  1554.    end
  1555.  
  1556.    /pntsize 1155 Frequency div def
  1557.    /FillFont newfont definefont pop
  1558.    /FillFont findfont pntsize scalefont setfont
  1559.  
  1560.    eoclip
  1561.    BackgroundGray 0 ge
  1562.       { BackgroundGray 100 div 1 exch sub setgray fill }
  1563.       { newpath } ifelse
  1564.  
  1565.    ForegroundGray 100 div 1 exch sub setgray
  1566.  
  1567.    Bblly pntsize Bbury
  1568.      { Bbllx 1 index moveto
  1569.        { (a) show
  1570.          currentpoint
  1571.          dup 3 index sub
  1572.          pntsize 2 div gt { pntsize sub } if
  1573.          1 index Bburx gt
  1574.          {pop pop pop exit} if
  1575.          moveto
  1576.        } loop
  1577.      } for
  1578.    } bind def
  1579.  
  1580. %@Fill
  1581. /Honeycomb %Panal,5, Frecuencia:=4, GrisáFondo:=100, Grisá1eráPlano:=0, Escalaá(%):=75, AnchoáLφnea:=5
  1582.    {
  1583.    /LineWidth exch 0 100 InRange def
  1584.    /Scaling exch 10 100 InRange def
  1585.    /FrontGrey exch 0 100 InRange def
  1586.    /BackGrey exch -100 100 InRange def
  1587.    /Frequency exch 1 50 InRange def
  1588.  
  1589.    /newfont 10 dict def
  1590.    newfont begin
  1591.  
  1592.    /FontMatrix [0.5773        0
  1593.                 0                   0.5773
  1594.                 0                   0] def
  1595.    /FontType 3 def
  1596.    /FontBBox [0 0 2 3 sqrt] def
  1597.    /Encoding 256 array def
  1598.    0 1 255 {Encoding exch /.notdef put} for
  1599.  
  1600.    /BuildChar
  1601.      { 1.5  0.8660
  1602.        -0.1 -0.1 2.1 1.8320
  1603.        setcachedevice
  1604.        pop begin
  1605.  
  1606.        0.5  0 moveto
  1607.        1.5  0 lineto
  1608.        2  0.8660 lineto
  1609.        1.5  1.7320 lineto
  1610.        0.5  1.7320 lineto
  1611.        0  0.8660 lineto
  1612.        closepath
  1613.  
  1614.        LineWidth pntsize div 3 sqrt mul setlinewidth
  1615.        stroke
  1616.  
  1617.       end
  1618.      } def
  1619.    end
  1620.  
  1621.    /pntsize 1000 Frequency div cvi def
  1622.  
  1623.    /FillFont newfont definefont pop
  1624.    /FillFont findfont pntsize scalefont setfont
  1625.  
  1626.    /dx Bburx Bbllx sub def
  1627.    /dy Bbury Bblly sub def
  1628.  
  1629.    eoclip newpath
  1630.  
  1631.    currentscreen
  1632.    3 -1 roll
  1633.    pop 120
  1634.    3 1 roll
  1635.    setscreen
  1636.  
  1637.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1638.  
  1639.    /dx dx 100 mul Scaling div def
  1640.    /dy dy 100 mul Scaling div def
  1641.  
  1642.    Scaling 100 div dup scale
  1643.    100 Scaling div log 10 div 10 exch exp
  1644.    BackGrey 0 100 InRange 100 div  FrontGrey BackGrey sub 1000 div  FrontGrey .1 sub 100 div
  1645.       { 1 exch sub setgray
  1646.       dup dup scale
  1647.       dy 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1648.         pntsize   dy pntsize add 2 div
  1649.         { dx 2 div cvi dup pntsize mod pntsize 2 div sub sub neg
  1650.           1 index moveto
  1651.           { (a) show
  1652.             currentpoint
  1653.             dup 3 index sub
  1654.             pntsize 2.1 div gt { pntsize sub } if
  1655.             1 index dx pntsize add 2 div gt
  1656.             { pop pop pop exit } if
  1657.             moveto
  1658.           } loop
  1659.         } for
  1660.       } for
  1661.    pop
  1662.    } bind def
  1663.  
  1664. %@Fill
  1665. /Impact %Impacto,5, AnchoáLφnea:=5, LongáEtapa:=15, AnguloáMßximo:=40, AnguloáMφnimo:=10, Funci≤náAleatoria:=0
  1666.    { srand
  1667.    /MinAng exch 2 90 InRange def
  1668.    /MaxAng exch MinAng 90 InRange MinAng wDstChck def
  1669.    /Step exch 10 500 InRange def
  1670.    /Linewidth exch 0 100 InRange def
  1671.  
  1672.    eoclip
  1673.    newpath
  1674.  
  1675.    /dx Bburx Bbllx sub def
  1676.    /dy Bbury Bblly sub def
  1677.    /DifAng MaxAng MinAng sub def
  1678.  
  1679.    Bbllx Bblly translate
  1680.  
  1681.    dx 2 div  dy 2 div  translate
  1682.    Linewidth Step div setlinewidth
  1683.    Step Step scale
  1684.  
  1685.    /theta 0 def
  1686.       { matrix currentmatrix
  1687.       /theta theta rand DifAng mod add MinAng add def
  1688.       theta 360 gt {pop exit} if
  1689.       theta rotate
  1690.       0 0 moveto
  1691.       rand 150 mod 50 add
  1692.          {
  1693.          currentpoint translate
  1694.          rand 120 mod 60 sub theta add dup rotate
  1695.          1 0 lineto
  1696.          neg rotate
  1697.          } repeat
  1698.       stroke
  1699.       setmatrix
  1700.       } loop
  1701.    } bind def
  1702.  
  1703.  
  1704. %@Fill
  1705. /Landscape %Paisaje,4, Profundidad:=6, GrisáMßximo:=100, GrisáMφnimo:=0, Funci≤náAleatoria:=0
  1706.    {
  1707.    srand
  1708.    /MinGrey exch 0 100 InRange def
  1709.    /MaxGrey exch MinGrey 100 InRange def
  1710.    /maxdepth exch 1 7 InRange def
  1711.  
  1712.    /dGrey MaxGrey MinGrey sub 200 div def
  1713.    /AvGrey MaxGrey MinGrey add 200 div def
  1714.  
  1715.    eoclip newpath
  1716.    /depth 0 def
  1717.    /ardepth 2 maxdepth 1 sub exp cvi def
  1718.    /height 1.8 8 maxdepth sub exp def
  1719.  
  1720.    /horz 0 def
  1721.    /vert 0 def
  1722.    /Array ardepth 1 add array def
  1723.    0 1 ardepth
  1724.       { Array exch ardepth 1 add array put
  1725.       } for
  1726.    0 1 ardepth
  1727.       { Array exch get
  1728.       0 1 ardepth
  1729.          { 2 copy 0 put
  1730.          pop
  1731.          } for
  1732.       pop
  1733.       } for
  1734.  
  1735.    /Square
  1736.       {
  1737.       /depth depth 1 add def
  1738.       depth maxdepth eq
  1739.       {
  1740.       Array horz get vert get dup 1 add dup moveto                    %ur
  1741.       Array horz 1 add get vert get dup 1 add lineto             %ul
  1742.       Array horz 1 add get vert 1 add get dup dup lineto         %ll
  1743.       Array horz get vert 1 add get dup 1 add exch lineto             %lr
  1744.       closepath
  1745.       sub
  1746.       dGrey mul AvGrey add
  1747.       setgray
  1748.       fill }
  1749.  
  1750.       {
  1751.       /wd 2 maxdepth depth sub 1 sub exp cvi def
  1752.  
  1753.       Array horz wd 2 mul add get vert wd 2 mul add get
  1754.       Array horz get vert wd 2 mul add get
  1755.       Array horz wd 2 mul add get vert get
  1756.       Array horz get vert get
  1757.  
  1758.       4 copy add add add 4 div
  1759.             rand 50 mod 25 sub height div 2 depth exp div add
  1760.       Array horz wd add get
  1761.             vert wd add 2 index put  pop
  1762.  
  1763.       3 index 2 index add 2 div
  1764.             rand 50 mod 25 sub height div 2 depth exp div add
  1765.       Array horz wd 2 mul add get
  1766.             vert wd add 2 index put   pop
  1767.  
  1768.       3 index 3 index add 2 div
  1769.             rand 50 mod 25 sub height div 2 depth exp div add
  1770.       Array horz wd add get
  1771.             vert wd 2 mul add 2 index put   pop
  1772.  
  1773.       horz 0 eq
  1774.       { 2 index 1 index add 2 div
  1775.             rand 50 mod 25 sub height div 2 depth exp div add
  1776.       Array horz get
  1777.             vert wd add 2 index put    pop
  1778.       } if
  1779.  
  1780.       vert 0 eq
  1781.       { 1 index 1 index add 2 div
  1782.             rand 50 mod 25 sub height div 2 depth exp div add
  1783.       Array horz wd add get
  1784.             vert 2 index put          pop
  1785.       } if
  1786.  
  1787.       pop pop pop pop
  1788.       .5 .5 translate
  1789.       .5 .5 scale
  1790.       Square
  1791.       2 2 scale
  1792.  
  1793.       /horz horz 2 maxdepth depth sub 1 sub exp cvi add def
  1794.       -.5 0 translate
  1795.       .5 .5 scale
  1796.       Square
  1797.       2 2 scale
  1798.       /horz horz 2 maxdepth depth sub 1 sub exp cvi sub def
  1799.  
  1800.       /vert vert 2 maxdepth depth sub 1 sub exp cvi add def
  1801.       .5 -.5 translate
  1802.       .5 .5 scale
  1803.       Square
  1804.       2 2 scale
  1805.       /vert vert 2 maxdepth depth sub 1 sub exp cvi sub def
  1806.  
  1807.       /horz horz 2 maxdepth depth sub 1 sub exp cvi add def
  1808.       /vert vert 2 maxdepth depth sub 1 sub exp cvi add def
  1809.       -.5 0 translate
  1810.       .5 .5 scale
  1811.       Square
  1812.       2 2 scale
  1813.       /horz horz 2 maxdepth depth sub 1 sub exp cvi sub def
  1814.       /vert vert 2 maxdepth depth sub 1 sub exp cvi sub def
  1815.  
  1816.       } ifelse
  1817.       /depth depth 1 sub def
  1818.  
  1819.    } def
  1820.  
  1821.    /dx Bburx Bbllx sub def
  1822.    /dy Bbury Bblly sub def
  1823.    /hyp dx dup mul dy dup mul add sqrt def
  1824.    Bbllx dx 2 div add  Bblly dy 2 div add translate
  1825.    hyp 1.2 mul dup scale
  1826.    45 rotate
  1827.    -.5 -.5 translate
  1828.  
  1829.    currentscreen
  1830.    3 -1 roll
  1831.    pop 120
  1832.    3 1 roll
  1833.    setscreen
  1834.  
  1835.    0 0 0 0
  1836.    Square
  1837.    4{ pop }repeat
  1838.  
  1839.    } bind def
  1840.  
  1841. %@Fill
  1842. /Leaves %Hojas,5, N·meroá(pulgadas2):=50, GrisáMßximo:=100, GrisáMφnimo:=0, Tama±oáMßximo:=100, Tama±oáMφnimo:=10
  1843.    {
  1844.    /MinSize exch 1 200 InRange def
  1845.    /MaxSize exch MinSize 200 InRange MinSize wDstChck def
  1846.    /MinGrey exch 0 100 InRange def
  1847.    /MaxGrey exch MinGrey 100 InRange def
  1848.    /Number exch 1 250 InRange def
  1849.  
  1850.    eoclip newpath
  1851.    currentscreen
  1852.    3 -1 roll
  1853.    pop 90
  1854.    3 1 roll
  1855.    setscreen
  1856.  
  1857.    /dx Bburx Bbllx sub def
  1858.    /dy Bbury Bblly sub def
  1859.  
  1860.    dx dy mul Number mul 1000000 div cvi
  1861.       {
  1862.       matrix currentmatrix
  1863.  
  1864.       rand dx mod Bbllx add
  1865.       rand dy mod Bblly add
  1866.       translate
  1867.  
  1868.       rand 360 mod
  1869.       rotate
  1870.  
  1871.       MaxSize MinSize eq
  1872.         { Maxsize 10.8 div }
  1873.         { rand MaxSize MinSize sub mod MinSize add 10.8 div } ifelse
  1874.       dup scale
  1875.  
  1876.       17 0 moveto
  1877.       65 -18 106 -13 125 0 curveto
  1878.       106 13  65  18  17 0 curveto
  1879.       gsave
  1880.       MaxGrey MinGrey eq
  1881.         { MaxGrey 100 div }
  1882.         { rand MaxGrey MinGrey sub mod MinGrey add 100 div } ifelse
  1883.       setgray
  1884.       fill
  1885.       grestore
  1886.       0.3 setlinewidth
  1887.       0 setgray
  1888.       stroke
  1889.  
  1890.       setmatrix
  1891.  
  1892.       } repeat
  1893.  
  1894.    } bind def
  1895.  
  1896. %@Fill
  1897. /Mesh %Malla,5, Frecuencia:=6, Tama±oáCuadradoá(%):=80, SombraáInferIzda:=3, SombraáSup.áDcha:=15, Grisá1eráPlano:=100
  1898.    {
  1899.    /ForegroundGray exch 0 100 InRange def
  1900.    /Shadow2 exch 0 100 InRange def
  1901.    /Shadow1 exch 0 100 InRange def
  1902.    /SquareSize exch 1 100 InRange def
  1903.    /Frequency exch 1 25 InRange def
  1904.  
  1905.    /newfont 10 dict def
  1906.    newfont begin
  1907.  
  1908.    /FontMatrix [1         0
  1909.                 0         1
  1910.                 0         0] def
  1911.    /FontType 3 def
  1912.    /FontBBox [0 0 1 1] def
  1913.    /Encoding 256 array def
  1914.    0 1 255 {Encoding exch /.notdef put} for
  1915.  
  1916.    /BuildChar
  1917.      { 1  0
  1918.        -0.1 -0.1 1.1 1.1
  1919.        setcachedevice
  1920.        pop begin
  1921.  
  1922.        0 setlinejoin
  1923.  
  1924.        SquareSize 100 div dup scale
  1925.        0 0 moveto
  1926.        1 0 lineto
  1927.        1 1 lineto
  1928.        0 1 lineto
  1929.        closepath
  1930.  
  1931.        Shadow1 100 div
  1932.        1 Shadow2 100 div sub
  1933.        1 index dup moveto
  1934.        1 index 1 index lineto
  1935.        dup dup lineto
  1936.        dup 2 index lineto
  1937.        closepath
  1938.        2{pop}repeat
  1939.        fill
  1940.  
  1941.        end
  1942.      } def
  1943.    end
  1944.  
  1945.    /pntsize 1000 Frequency div def
  1946.  
  1947.    /FillFont newfont definefont pop
  1948.    /FillFont findfont pntsize scalefont setfont
  1949.  
  1950.    eoclip newpath
  1951.  
  1952.    ForegroundGray 100 div 1 exch sub setgray
  1953.  
  1954.    Bblly pntsize Bbury
  1955.      { Bbllx exch moveto
  1956.        { (a) show
  1957.          currentpoint
  1958.          pop Bburx gt
  1959.          {exit} if
  1960.        } loop
  1961.      } for
  1962.    } bind def
  1963.  
  1964. %@Fill
  1965. /Motifs %Motivos,4, Motivo:=1, Frecuencia:=2, Espaciadoá(%):=100, Grisá1eráPlano:=100
  1966.    {
  1967.    /ForegroundGray exch 0 100 InRange def
  1968.    /Spacing exch 1 300 InRange def
  1969.    /Frequency exch 1 25 InRange def
  1970.    /Character exch 1 8 InRange def
  1971.  
  1972.    /str 1 string def
  1973.    str 0 Character put
  1974.  
  1975.    /newfont 10 dict def
  1976.    newfont begin
  1977.  
  1978.    /FontMatrix [.001                0
  1979.                 0                   .001
  1980.                 0                   0] def
  1981.    /FontType 3 def
  1982.    /FontBBox [0 0 500 1000] def
  1983.  
  1984.    /Encoding 256 array def
  1985.    0 1 255 {Encoding exch /.notdef put} for
  1986.    Encoding  1 /CanadianFlag put
  1987.    Encoding  2 /Corels put
  1988.    Encoding  3 /Globe put
  1989.    Encoding  4 /CubeSolid put
  1990.    Encoding  5 /CubeFrame put
  1991.    Encoding  6 /Balls put
  1992.    Encoding  7 /Checkerboard put
  1993.    Encoding  8 /CCCTlogo put
  1994.  
  1995.    /CharProcs 9 dict def
  1996.    CharProcs begin
  1997.    /.notdef {} def
  1998.    /CanadianFlag
  1999.      { 9.6 9.6 scale
  2000.        9 -30 translate
  2001.  
  2002.        -9 60 moveto
  2003.        -9 30 lineto
  2004.        -1 30 lineto
  2005.        -1 60 lineto
  2006.        closepath
  2007.  
  2008.        43 60 moveto
  2009.        43 30 lineto
  2010.        35 30 lineto
  2011.        35 60 lineto
  2012.        closepath
  2013.  
  2014.        17 58 moveto
  2015.        15 54 lineto
  2016.        12 55 lineto
  2017.        14 47 lineto
  2018.        10 51 lineto
  2019.        10 49 lineto
  2020.        05 50 lineto
  2021.        07 45 lineto
  2022.        05 45 lineto
  2023.        12 39 lineto
  2024.        10 37 lineto
  2025.        16.5 38 lineto
  2026.        16.5 32 lineto
  2027.        17.5 32 lineto
  2028.        17.5 38 lineto
  2029.        24 37 lineto
  2030.        22 39 lineto
  2031.        29 45 lineto
  2032.        27 45 lineto
  2033.        29 50 lineto
  2034.        24 49 lineto
  2035.        24 51 lineto
  2036.        20 47 lineto
  2037.        22 55 lineto
  2038.        19 54 lineto
  2039.        closepath
  2040.  
  2041. %       0.3 setlinewidth
  2042. %       stroke
  2043.        fill
  2044.        } def
  2045.    /Corels
  2046.        { 250 250 translate
  2047.        113 113 scale
  2048.  
  2049.        7 { 45 rotate
  2050.          gsave
  2051.          1.7071 0 translate
  2052.          .5 .5 moveto
  2053.          -.5 .5 lineto
  2054.          -.5 -.5 lineto
  2055.          .5 -.5 lineto
  2056.          closepath
  2057.          fill
  2058.          grestore
  2059.          } repeat
  2060.        } def
  2061.    /Globe
  2062.        {
  2063.        250 250 translate
  2064.        250 250 scale
  2065.        0 1 4
  2066.           { matrix currentmatrix exch
  2067.           22.5 mul sin
  2068.           1 scale
  2069.           0 0 1 90 450 arc
  2070.           setmatrix
  2071.           } for
  2072.  
  2073.        -3 1 3
  2074.           { 22.5 mul sin
  2075.           dup
  2076.           dup mul 1 sub neg sqrt
  2077.           dup neg 2 index moveto
  2078.           exch lineto
  2079.           } for
  2080.  
  2081.        .01 setlinewidth
  2082.        stroke
  2083.        } def
  2084.    /CubeSolid
  2085.        {
  2086.        250 250 translate
  2087.        145 145 scale
  2088.        /Rotm
  2089.           { 30 matrix rotate transform
  2090.           exch 3 1 roll
  2091.           30 matrix rotate transform
  2092.           pop exch
  2093.           moveto
  2094.           } bind def
  2095.        /Rotl
  2096.           { 30 matrix rotate transform
  2097.           exch 3 1 roll
  2098.           30 matrix rotate transform
  2099.           pop exch
  2100.           lineto
  2101.           } bind def
  2102.  
  2103.         1  1  1 Rotm
  2104.        -1  1  1 Rotl
  2105.        -1 -1  1 Rotl
  2106.         1 -1  1 Rotl
  2107.        closepath
  2108.  
  2109.        -1  1  1 Rotm
  2110.        -1  1 -1 Rotl
  2111.         1  1 -1 Rotl
  2112.         1 -1 -1 Rotl
  2113.         1 -1  1 Rotl
  2114.  
  2115.         1  1  1 Rotm
  2116.         1  1 -1 Rotl
  2117.  
  2118.        .01 setlinewidth
  2119.        stroke
  2120.        } def
  2121.    /CubeFrame
  2122.        {
  2123.        250 250 translate
  2124.        145 145 scale
  2125.        /Rotm
  2126.           { 30 matrix rotate transform
  2127.           exch 3 1 roll
  2128.           30 matrix rotate transform
  2129.           pop exch
  2130.           moveto
  2131.           } bind def
  2132.        /Rotl
  2133.           { 30 matrix rotate transform
  2134.           exch 3 1 roll
  2135.           30 matrix rotate transform
  2136.           pop exch
  2137.           lineto
  2138.           } bind def
  2139.  
  2140.         1  1  1 Rotm
  2141.        -1  1  1 Rotl
  2142.        -1 -1  1 Rotl
  2143.         1 -1  1 Rotl
  2144.        closepath
  2145.  
  2146.         1  1 -1 Rotm
  2147.        -1  1 -1 Rotl
  2148.        -1 -1 -1 Rotl
  2149.         1 -1 -1 Rotl
  2150.        closepath
  2151.  
  2152.         1  1  1 Rotm
  2153.         1  1 -1 Rotl
  2154.        -1  1  1 Rotm
  2155.        -1  1 -1 Rotl
  2156.        -1 -1  1 Rotm
  2157.        -1 -1 -1 Rotl
  2158.         1 -1  1 Rotm
  2159.         1 -1 -1 Rotl
  2160.  
  2161.        .01 setlinewidth
  2162.        stroke
  2163.        } def
  2164.    /Balls
  2165.        { 250 250 translate
  2166.        225 225 scale
  2167.  
  2168.        0 0 1.1 0 360 arc
  2169.        -0.32  0.55 translate
  2170.        30 rotate
  2171.        0.5 0.3333 scale
  2172.        0 0 1.1 360 0 arcn
  2173.        fill
  2174.        } def
  2175.    /Checkerboard
  2176.        { 0 0 moveto
  2177.        500 0 lineto
  2178.        500 500 lineto
  2179.        0 500 lineto
  2180.        closepath
  2181.        fill
  2182.        } def
  2183.    /CCCTlogo
  2184.        {
  2185.        4.8 4.8 scale
  2186.        -21 -26 translate
  2187.  
  2188.        36.4 28.4 moveto
  2189.        70 38 35 196 176.7 arcn
  2190.        35.1 40 35 42 24 41 curveto
  2191.        21 37 24 38 22 32 curveto
  2192.        21 28 25 27 28 28 curveto
  2193.        33 26 32 30 36.4 28.4 curveto
  2194.  
  2195.        36.5 48.2 moveto
  2196.        70 38 35 163.1 144.5 arcn
  2197.        40 59 39 60 36 61 curveto
  2198.        33 63 29 62 27 61 curveto
  2199.        24 58 29 55 26 54 curveto
  2200.        24 53 25 50 25 50 curveto
  2201.        28 47 30 44 36.5 48.2 curveto
  2202.  
  2203.        44.3 61.7 moveto
  2204.        70 38 35 137.3 111.5 arcn
  2205.        56 81 52 75 53 81 curveto
  2206.        52 87 50 81 46 84 curveto
  2207.        37 84 40 80 40 76 curveto
  2208.        42 70 35 73 44.3 61.7 curveto
  2209.  
  2210.        60.8 71.8 moveto
  2211.        70 38 35 105.3 80.0 arcn
  2212.        78 72 78 76 77 80 curveto
  2213.        77 81 80 82 79 83 curveto
  2214.        77 85 74 84 70 85 curveto
  2215.        65 85 69 80 62 80 curveto
  2216.        59 77 61 74 60.8 71.8 curveto
  2217.  
  2218.        97.1 60.1 moveto
  2219.        70 38 35 39.2 66.4 arc
  2220.        81 74 82 78 85 81 curveto
  2221.        91 81 98 84 95 76 curveto
  2222.        98 74 115 77 103 72 curveto
  2223.        101 68 100 61 97.1 60.1 curveto
  2224.  
  2225.        100 56 moveto
  2226.        70 38 35 31 11.6 arcn
  2227.        113 42 114 49 118 50 curveto
  2228.        115 57 123 56 120 60 curveto
  2229.        115 60 116 64 109 63 curveto
  2230.        104 62 107 57 100 56 curveto
  2231.  
  2232.        105 39 moveto
  2233.        70 38 35 1.6 -14.8 arcn
  2234.        107 27 110 28 112 27 curveto
  2235.        115 27 111 31 118 32 curveto
  2236.        120 33 125 33 122 36 curveto
  2237.        121 37 119 38 117 39 curveto
  2238.        113 46 112 39 105 39 curveto
  2239.  
  2240.        fill
  2241.     } def
  2242.    end
  2243.  
  2244.    /BuildChar
  2245.      {Spacing 100 div 500 mul  dup
  2246.       -0.1 -0.1 500.1 1000.1
  2247.       setcachedevice
  2248.       exch begin
  2249.       Encoding exch get
  2250.       CharProcs exch get
  2251.       end
  2252.       exec
  2253.      }def
  2254.    end
  2255.  
  2256.    /pntsize 100000 Frequency div Spacing div def
  2257.  
  2258.    /FillFont newfont definefont pop
  2259.    /FillFont findfont pntsize scalefont setfont
  2260.  
  2261.    /increment Spacing 100 div pntsize mul def
  2262.    /ury Bbury increment add def
  2263.  
  2264.    eoclip newpath
  2265.    ForegroundGray 100 div 1 exch sub setgray
  2266.    Bblly increment ury
  2267.      { Bbllx 1 index moveto
  2268.        { str show
  2269.          currentpoint
  2270.          dup 3 index sub
  2271.          increment 2.1 div gt { increment sub } if
  2272.          1 index Bburx gt
  2273.          {pop pop pop exit} if
  2274.          moveto
  2275.        } loop
  2276.      } for
  2277.    } bind def
  2278.  
  2279. %@Fill
  2280. /Octagons %Oct≤gonos,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2281.    {
  2282.    /BackgroundGray exch -1 100 InRange def
  2283.    /ForegroundGray exch 0 100 InRange def
  2284.    /Linewidth      exch 0 100 InRange def
  2285.    /Frequency      exch 2 100 InRange def
  2286.  
  2287.    /newfont 10 dict def
  2288.    newfont begin
  2289.  
  2290.    /FontMatrix [0.4142                          0
  2291.                 0                   0.4142
  2292.                 0                   0] def
  2293.    /FontType 3 def
  2294.    /FontBBox [0 0 2.4142 2.4142] def
  2295.    /Encoding 256 array def
  2296.    0 1 255 {Encoding exch /.notdef put} for
  2297.  
  2298.    /BuildChar
  2299.      { 2.4142  0
  2300.        -0.5 -0.5 2.9142 2.9142
  2301.        setcachedevice
  2302.        pop begin
  2303.  
  2304.        0.7071  0 moveto
  2305.        1.7071  0 lineto
  2306.        2.4142  0.7071 lineto
  2307.        2.4142  1.7071 lineto
  2308.        1.7071  2.4142 lineto
  2309.        0.7071  2.4142 lineto
  2310.        0  1.7071 lineto
  2311.        0  0.7071 lineto
  2312.        closepath
  2313.  
  2314.        Linewidth pntsize div 2.4142 mul setlinewidth
  2315.        stroke
  2316.  
  2317.       end
  2318.      } def
  2319.    end
  2320.  
  2321.    /pntsize 1000 Frequency div def
  2322.    /FillFont newfont definefont pop
  2323.    /FillFont findfont pntsize scalefont setfont
  2324.  
  2325.    eoclip
  2326.    BackgroundGray 0 ge
  2327.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2328.       { newpath } ifelse
  2329.  
  2330.    ForegroundGray 100 div 1 exch sub setgray
  2331.  
  2332.    Bblly pntsize Bbury
  2333.      { Bbllx pntsize Bburx
  2334.        { 1 index moveto
  2335.        (a) show
  2336.        } for
  2337.      pop
  2338.      } for
  2339.    } bind def
  2340.  
  2341. %@Fill
  2342. /Patio %Patio,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2343.    {
  2344.    /BackgroundGray exch -1 100 InRange def
  2345.    /ForegroundGray exch 0 100 InRange def
  2346.    /Linewidth      exch 0 100 InRange def
  2347.    /Frequency      exch 2 100 InRange def
  2348.  
  2349.    /newfont 10 dict def
  2350.    newfont begin
  2351.  
  2352.    /FontMatrix [0.2857              0
  2353.                 0                   0.2857
  2354.                 0                   0] def
  2355.    /FontType 3 def
  2356.    /FontBBox [0 0 3.4641  3.5] def
  2357.    /Encoding 256 array def
  2358.    0 1 255 {Encoding exch /.notdef put} for
  2359.  
  2360.    /BuildChar
  2361.      { 2.5980  1.5
  2362.        -0.5 -0.5 3.9641 4
  2363.        setcachedevice
  2364.        pop begin
  2365.  
  2366.        1.7320 1.5 translate
  2367.        0.8660  0.5  moveto
  2368.        3 { 120 rotate
  2369.            0.8660  -1.5 lineto
  2370.            1.7320  -1 lineto
  2371.            1.7320   0 lineto
  2372.            0.8660   0.5 lineto
  2373.          } repeat
  2374.  
  2375.        Linewidth pntsize div 3.5 mul setlinewidth
  2376.        stroke
  2377.  
  2378.        end
  2379.      } def
  2380.    end
  2381.  
  2382.    /pntsize 1250 Frequency div def
  2383.  
  2384.    /FillFont newfont definefont pop
  2385.    /FillFont findfont pntsize scalefont setfont
  2386.  
  2387.    /Pointsize pntsize 6 mul 7 div def
  2388.  
  2389.    eoclip
  2390.    BackgroundGray 0 ge
  2391.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2392.       { newpath } ifelse
  2393.  
  2394.    ForegroundGray 100 div 1 exch sub setgray
  2395.  
  2396.    Bblly Pointsize Bbury
  2397.      { Bbllx 1 index moveto
  2398.        { (a) show
  2399.          currentpoint
  2400.          dup 3 index sub
  2401.          Pointsize 2 div gt { Pointsize sub } if
  2402.          1 index Bburx gt
  2403.          {pop pop pop exit} if
  2404.          moveto
  2405.        } loop
  2406.      } for
  2407.    } bind def
  2408.  
  2409. %@Fill
  2410. /Rectangles %Rectßngulos,5, Area:=100, N·mero:=50, AnchoáLφnea:=5, Gris:=0, Funci≤náAleatoria:=0
  2411.    {
  2412.    srand
  2413.    /Grey exch 0 100 InRange def
  2414.    /Linewidth exch 0 100 InRange def
  2415.    /Number exch 1 200 InRange def
  2416.    /area exch 10 300 InRange def
  2417.  
  2418.    /dx Bburx Bbllx sub 2 mul def
  2419.    /dy Bbury Bblly sub 2 mul def
  2420.    /Area area 10000 mul def
  2421.  
  2422.    eoclip newpath
  2423.  
  2424.    Linewidth setlinewidth
  2425.    Bbllx dx 2 div sub  Bblly dy 2 div sub  translate
  2426.  
  2427. %   Area log
  2428.    Number {
  2429.       rand dx mod rand dy mod moveto
  2430. %      rand 180 mod 90 sub 100 div dup  dup mul 1 exch sub sqrt
  2431. %      exch atan 180 div 1 index mul 10 exch exp
  2432.       rand Area mod rand Area mod mul sqrt sqrt
  2433.       dup 0 rlineto
  2434.       0 Area 2 index div rlineto
  2435.       dup neg 0 rlineto
  2436.       closepath
  2437.       pop
  2438.  
  2439.       gsave
  2440.       Grey 100 div 1 exch sub setgray
  2441.       fill
  2442.       grestore
  2443.       0 setgray
  2444.       stroke
  2445.       } repeat
  2446.  
  2447.    } bind def
  2448.  
  2449. %@Fill
  2450. /Reptiles %Reptiles,5, Frecuencia:=4, Gris1:=60, Gris2:=30, Gris3:=0, AnchoáLφnea:=8
  2451. {
  2452.   /LineWidth exch 0 250 InRange def
  2453.   /Gray3 exch 0 100 InRange 100 div def
  2454.   /Gray2 exch -1 100 InRange 100 div def
  2455.   /Gray1 exch -1 100 InRange 100 div def
  2456.   /Frequency exch 1 100 InRange def
  2457.  
  2458.   /newfont 10 dict def
  2459.   newfont begin
  2460.  
  2461.   /FontMatrix [0.2857              0
  2462.                0                   0.2857
  2463.                0                   0] def
  2464.   /FontType 3 def
  2465.   /FontBBox [-1.73 -1.86 2.36 2.0] def
  2466.   /Encoding 256 array def
  2467.   0 1 255 {Encoding exch /.notdef put} for
  2468.   Encoding 97 /ReptilesStroked put
  2469.   Encoding 98 /ReptileFilled put
  2470.  
  2471.   /CharProcs 3 dict def
  2472.   CharProcs begin
  2473.   /.notdef {} def
  2474.   /ReptilesStroked
  2475.   {
  2476.     %3 sqrt  1.5  translate
  2477.  
  2478.     0.8660 0.5  moveto
  2479.     3
  2480.     {
  2481.       120 rotate
  2482.  
  2483.       0     0    moveto
  2484.       0.32 -0.40 lineto
  2485.       0.32 -0.48 lineto
  2486.       0    -0.72 lineto
  2487.  
  2488.       0.05 -1.03 moveto
  2489.       0.4  -0.76 lineto
  2490.       0.84 -0.84 lineto
  2491.       0.5  -0.96 lineto
  2492.       0.31 -1.18 lineto
  2493.  
  2494.       0.87 -1.5  moveto
  2495.       0.58 -1.28 lineto
  2496.       0.8  -1.14 lineto
  2497.       0.94 -1.18 lineto
  2498.       1.24 -1.08 lineto
  2499.       1.42 -1.18 lineto
  2500.  
  2501.       1.68 -1.02 moveto
  2502.       1.52 -0.84 lineto
  2503.       1.64 -0.66 lineto
  2504.       1.73 -0.36 lineto
  2505.  
  2506.       1.73  0    moveto
  2507.       1.41 -0.26 lineto
  2508.       1.32 -0.49 lineto
  2509.       1.06 -0.24 lineto
  2510.       1.42  0.18 lineto
  2511.  
  2512.       0.87  0.57 moveto
  2513.       0.87  0.26 lineto
  2514.       0.99  0.26 lineto
  2515.       1.05  0.12 lineto
  2516.       0.82 -0.07 lineto
  2517.       0.68 -0.07 lineto
  2518.       0.62  0.36 lineto
  2519.  
  2520.  
  2521.       0.8660  0.5 moveto
  2522.  
  2523.     } repeat
  2524.  
  2525.     LineWidth Pointsize div 3.5 mul setlinewidth
  2526.     stroke
  2527.  
  2528.   } def
  2529.   /ReptileFilled
  2530.   {
  2531.     0     0    moveto
  2532.     0.32 -0.40 lineto
  2533.     0.32 -0.48 lineto
  2534.     0    -0.72 lineto
  2535.  
  2536.    -0.40 -0.55 lineto
  2537.    -0.47 -0.68 lineto
  2538.    -0.42 -0.97 lineto
  2539.    -0.27 -0.99 lineto
  2540.    -0.21 -0.88 lineto
  2541.  
  2542.     0.05 -1.03 lineto
  2543.     0.4  -0.76 lineto
  2544.     0.84 -0.84 lineto
  2545.     0.5  -0.96 lineto
  2546.     0.31 -1.18 lineto
  2547.  
  2548.     0.32 -1.39 lineto
  2549.     0.55 -1.60 lineto
  2550.     0.59 -1.74 lineto
  2551.     0.82 -1.86 lineto
  2552.  
  2553.     0.87 -1.5  lineto
  2554.     0.58 -1.28 lineto
  2555.     0.8  -1.14 lineto
  2556.     0.94 -1.18 lineto
  2557.     1.24 -1.08 lineto
  2558.     1.42 -1.18 lineto
  2559.     1.52 -1.45 lineto
  2560.     1.45 -1.81 lineto
  2561.     1.74 -1.47 lineto
  2562.     1.68 -1.02 lineto
  2563.     1.52 -0.84 lineto
  2564.     1.64 -0.66 lineto
  2565.     1.73 -0.36 lineto
  2566.     2.28 -0.46 lineto
  2567.     2.36 -0.11 lineto
  2568.     2.12 -0.15 lineto
  2569.     1.73  0    lineto
  2570.     1.41 -0.26 lineto
  2571.     1.32 -0.49 lineto
  2572.     1.06 -0.24 lineto
  2573.     1.42  0.18 lineto
  2574.     1.21  0.41 lineto
  2575.     1.11  0.60 lineto
  2576.  
  2577.     0.87  0.57 lineto
  2578.     0.87  0.26 lineto
  2579.     0.99  0.26 lineto
  2580.     1.05  0.12 lineto
  2581.     0.82 -0.07 lineto
  2582.     0.68 -0.07 lineto
  2583.     0.62  0.36 lineto
  2584.     0.26  0.52 lineto
  2585.     0.19  0.48 lineto
  2586.     closepath
  2587.     fill
  2588.   } def
  2589.   end
  2590.  
  2591.   /BuildChar
  2592.   {
  2593.     2.5980 1.5
  2594.     -1.83 -1.96 2.46 2.1
  2595.     setcachedevice
  2596.     exch begin
  2597.     Encoding exch get
  2598.     CharProcs exch get
  2599.     end
  2600.     exec
  2601.   } def
  2602.   end
  2603.  
  2604.   /Pointsize 2000 Frequency div def
  2605.  
  2606.   /FillFont newfont definefont pop
  2607.   /FillFont findfont Pointsize scalefont setfont
  2608.  
  2609.   /pntsize Pointsize 6 mul 7 div def
  2610.   /HeightDiff Pointsize 2 mul 7 div .49 mul def
  2611.  
  2612.   eoclip newpath
  2613.  
  2614.   currentscreen
  2615.   3 -1 roll
  2616.   pop 120
  2617.   3 1 roll
  2618.   setscreen
  2619.  
  2620.   Bblly pntsize Bbury pntsize add HeightDiff add
  2621.   {
  2622.     Bbllx 1 index moveto
  2623.     {
  2624.       currentpoint
  2625.       1 index exch
  2626.  
  2627.       2 copy 2 copy translate
  2628.       240 rotate
  2629.       Gray1 0 ge
  2630.       { Gray1 1 exch sub setgray
  2631.         (b) show
  2632.       } if
  2633.       0 0 moveto
  2634.       -240 rotate
  2635.       neg exch neg exch translate
  2636.  
  2637.       2 copy translate
  2638.       120 rotate
  2639.       Gray2 0 ge
  2640.       { Gray2 1 exch sub setgray
  2641.         (b) show
  2642.       } if
  2643.       0 0 moveto
  2644.       -120 rotate
  2645.       neg exch neg exch translate
  2646.  
  2647.       Gray3 1 exch sub setgray
  2648.       (b) show
  2649.  
  2650.       currentpoint
  2651.       dup 4 index sub
  2652.       pntsize 2.1 div gt { pntsize sub } if
  2653.       3 -1 roll Bburx gt
  2654.       {pop pop pop exit} if
  2655.       moveto
  2656.     } loop
  2657.   } for
  2658.  
  2659.   LineWidth 0 gt
  2660.   {
  2661.     0 setgray
  2662.     Bblly pntsize Bbury pntsize add
  2663.     {
  2664.       Bbllx 1 index moveto
  2665.       {
  2666.         (a) show
  2667.         currentpoint
  2668.         dup 3 index sub
  2669.         pntsize 2.1 div gt { pntsize sub } if
  2670.         1 index Bburx gt
  2671.         {pop pop pop exit} if
  2672.         moveto
  2673.       } loop
  2674.     } for
  2675.   } if
  2676. } bind def
  2677.  
  2678. %@Fill
  2679. /SpiderWeb %Telara±a,5, AnchoáLφnea:=5, Separaci≤n:=300, AnguloáMßximo:=40, AnguloáMφnimo:=10, Funci≤náAleatoria:=0
  2680.    { srand
  2681.    /MinAng exch 2 90 InRange def
  2682.    /MaxAng exch MinAng 90 InRange MinAng wDstChck def
  2683.    /Sep exch 10 500 InRange def
  2684.    /Linewidth exch 0 100 InRange def
  2685.  
  2686.    eoclip
  2687.    newpath
  2688.  
  2689.    /dx Bburx Bbllx sub def
  2690.    /dy Bbury Bblly sub def
  2691.    /hyp dx dup mul dy dup mul add sqrt def
  2692.    /DifAng MaxAng MinAng sub def
  2693.  
  2694.    Bbllx Bblly translate
  2695.    dx 2 div dy 2 div translate
  2696.  
  2697.    /theta 0 def
  2698.    /dtheta 0 def
  2699.  
  2700.    {  0 0 moveto
  2701.  
  2702.       /theta theta dtheta add def
  2703.       theta 360 ge
  2704.         { exit } if
  2705.       /dtheta rand DifAng mod MinAng add def
  2706.       theta dtheta add 350 gt
  2707.         { /dtheta 360 theta sub def } if
  2708.  
  2709.       hyp theta cos mul hyp theta sin mul lineto
  2710.  
  2711.       0 Sep hyp
  2712.          {
  2713.          dup theta cos mul
  2714.          1 index theta sin mul
  2715.          moveto
  2716.  
  2717.          dup theta dtheta add cos theta cos add mul
  2718.          1 index theta dtheta add sin theta sin add mul
  2719.          2 index
  2720.          theta 180 add dtheta add
  2721.          theta 180 add
  2722.          arcn
  2723.  
  2724.          pop
  2725.          } for
  2726.       Linewidth setlinewidth
  2727.       stroke
  2728.       } loop
  2729.    } bind def
  2730.  
  2731. %@Fill
  2732. /Spirals %Espirales,4, Tama±o:=150, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2733.    {
  2734.    /BackgroundGrey exch -1 100 InRange def
  2735.    /ForegroundGray exch 0 100 InRange def
  2736.    /Linewidth exch 0 100 InRange def
  2737.    /Size exch 10 500 InRange def
  2738.  
  2739.    eoclip
  2740.    BackgroundGrey 0 ge
  2741.       { BackgroundGrey 100 div 1 exch sub setgray fill }
  2742.       { newpath } ifelse
  2743.  
  2744.    /cx Bburx Bbllx add 2 div def
  2745.    /cy Bbury Bblly add 2 div def
  2746.    /pntsize2 Size 2 div def
  2747.    /cy2 cy pntsize2 add def
  2748.    /hyp Bburx Bbllx sub dup mul
  2749.         Bbury Bblly sub dup mul
  2750.         add sqrt 2 div def
  2751.  
  2752.    ForegroundGray 100 div 1 exch sub setgray
  2753.  
  2754.    Linewidth setlinewidth
  2755.    0 Size hyp
  2756.       { cx cy 2 index 90 270 arc
  2757.         cx cy2 2 index pntsize2 add -90 90 arc
  2758.         pop
  2759.       } for
  2760.    stroke
  2761.    } bind def
  2762.  
  2763. %@Fill
  2764. /Spokes %Rayos,5, N·mero:=120, AnchoáLφnea:=5, Horizontal:=0, Vertical:=0, Grisá1eráPlano:=100
  2765.         { %def -- Fill function that fills with spokes
  2766.         /ForegroundGray exch 0 100 InRange def
  2767.     /wY exch 0 100 InRange def
  2768.     /wX exch 0 100 InRange def
  2769.     /LineWidth exch 0 100 InRange def
  2770.     /Number exch 4 360 InRange def
  2771.  
  2772.         eoclip
  2773.         newpath
  2774.         /Flen Bburx Bbllx sub dup mul Bbury Bblly sub dup mul add sqrt def
  2775.         Bbllx Bblly translate
  2776.     Bburx Bbllx sub wX mul 100 div  Bbury Bblly sub wY mul 100 div translate
  2777.  
  2778.     360 Number div
  2779.         Number {
  2780.            0 0 moveto
  2781.            Flen 0 lineto
  2782.            dup rotate
  2783.            } repeat
  2784.         pop
  2785.         ForegroundGray 100 div 1 exch sub setgray
  2786.     LineWidth setlinewidth
  2787.     stroke
  2788.         } bind def
  2789.  
  2790. %@Fill
  2791. /Squares %Cuadrados,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2792.    {
  2793.    /BackgroundGray exch -1 100 InRange def
  2794.    /ForegroundGray exch 0 100 InRange def
  2795.    /Linewidth      exch 0 100 InRange def
  2796.    /Frequency      exch 2 100 InRange def
  2797.  
  2798.    /newfont 10 dict def
  2799.    newfont begin
  2800.  
  2801.    /FontMatrix [1  0  0
  2802.                 1  0  0] def
  2803.    /FontType 3 def
  2804.    /FontBBox [0 0 1 1] def
  2805.    /Encoding 256 array def
  2806.    0 1 255 {Encoding exch /.notdef put} for
  2807.  
  2808.    /BuildChar
  2809.      { 1  0
  2810.        -0.1 -0.1 1.1 1.1
  2811.        setcachedevice
  2812.        pop begin
  2813.  
  2814.        0 0 moveto
  2815.        0 1 lineto
  2816.        1 1 lineto
  2817.        1 0 lineto
  2818.  
  2819.        Linewidth pntsize div setlinewidth
  2820.        stroke
  2821.  
  2822.       end
  2823.      } def
  2824.    end
  2825.  
  2826.    /pntsize 1000 Frequency div def
  2827.  
  2828.    /FillFont newfont definefont pop
  2829.    /FillFont findfont pntsize scalefont setfont
  2830.  
  2831.    eoclip
  2832.    BackgroundGray 0 ge
  2833.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2834.       { newpath } ifelse
  2835.  
  2836.    ForegroundGray 100 div 1 exch sub setgray
  2837.  
  2838.    Bblly pntsize Bbury
  2839.      { Bbllx exch moveto
  2840.        { (a) show
  2841.          currentpoint
  2842.          pop Bburx gt
  2843.          {exit} if
  2844.        } loop
  2845.      } for
  2846.    } bind def
  2847.  
  2848. %@Fill
  2849. /StarOfDavid %EstrellaDeDavid,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  2850.    {
  2851.    /BackgroundGray exch -1 100 InRange def
  2852.    /ForegroundGray exch 0 100 InRange def
  2853.    /Linewidth      exch 0 100 InRange def
  2854.    /Frequency      exch 2 100 InRange def
  2855.  
  2856.    /newfont 10 dict def
  2857.    newfont begin
  2858.  
  2859.    /FontMatrix [0.2886   0
  2860.                 0                   0.2886
  2861.                 0                   0] def
  2862.    /FontType 3 def
  2863.    /FontBBox [0 0 2 3.4641] def
  2864.    /Encoding 256 array def
  2865.    0 1 255 {Encoding exch /.notdef put} for
  2866.  
  2867.    /BuildChar
  2868.      { 1  1.7320
  2869.        -0.1 -0.1 2.1 3.564
  2870.        setcachedevice
  2871.        pop begin
  2872.  
  2873.        0.5  0 moveto
  2874.        1.5  0 lineto
  2875.        2  0.8660 lineto
  2876.        1.5  1.7320 lineto
  2877.        0.5  1.7320 lineto
  2878.        0  0.8660 lineto
  2879.        closepath
  2880.  
  2881.        Linewidth pntsize div 3.4641 mul setlinewidth
  2882.        stroke
  2883.  
  2884.       end
  2885.      } def
  2886.    end
  2887.  
  2888.    /pntsize 1732 Frequency div def
  2889.  
  2890.    /FillFont newfont definefont pop
  2891.    /FillFont findfont pntsize scalefont setfont
  2892.  
  2893.    eoclip
  2894.    BackgroundGray 0 ge
  2895.       { BackgroundGray 100 div 1 exch sub setgray fill }
  2896.       { newpath } ifelse
  2897.  
  2898.    ForegroundGray 100 div 1 exch sub setgray
  2899.  
  2900.    /ury Bbury pntsize add def
  2901.    Bblly pntsize ury
  2902.      { Bbllx pntsize sub 1 index moveto
  2903.        { (a) show
  2904.          currentpoint
  2905.          dup 3 index sub
  2906.          pntsize 2.1 div gt { pntsize sub } if
  2907.          1 index Bburx gt
  2908.          {pop pop pop exit} if
  2909.          moveto
  2910.        } loop
  2911.      } for
  2912.    } bind def
  2913.  
  2914. %@Fill
  2915. /Stars %Estrellas,4, N·mero:=100, Tama±oáMßximo:=300, Tama±oáMφnimo:=3, Funci≤náAleatoria:=0
  2916.    { srand
  2917.    /MinSize exch 1 1000 InRange def
  2918.    /MaxSize exch MinSize 1000 InRange def
  2919.    /Number exch 1 2000 InRange def
  2920.  
  2921.    /newfont 10 dict def
  2922.    newfont begin
  2923.  
  2924.    /FontMatrix [1  0  0
  2925.                 1  0  0] def
  2926.    /FontType 3 def
  2927.    /FontBBox [0 0 1 1] def
  2928.    /Encoding 256 array def
  2929.    0 1 255 {Encoding exch /.notdef put} for
  2930.  
  2931.    /BuildChar
  2932.      { 1  0
  2933.        -0.1 -0.1 1.1 1.1
  2934.        setcachedevice
  2935.        pop begin
  2936.  
  2937.        1 .5 moveto
  2938.        .5 .5 .5 0 360 arc
  2939.        fill
  2940.  
  2941.        end
  2942.      } def
  2943.    end
  2944.  
  2945.    /FillFont newfont definefont pop
  2946.    /FillFont findfont 2 scalefont setfont
  2947.  
  2948.    /dx Bburx Bbllx sub def
  2949.    /dy Bbury Bblly sub def
  2950.  
  2951.    eoclip
  2952.    0 setgray
  2953.    fill
  2954.  
  2955.    1 setgray
  2956.    /mtx matrix currentmatrix def
  2957.    dx dy mul Number mul 100000 div cvi
  2958.       { rand dx mod Bbllx add
  2959.       rand dy mod Bblly add
  2960.       moveto
  2961.       MaxSize rand  MaxSize MinSize div cvi  mod 1 add div 10 div
  2962.       dup scale
  2963.       (a) show
  2964.       mtx setmatrix
  2965.       } repeat
  2966.  
  2967.    } bind def
  2968.  
  2969. %@Fill
  2970. /StarShapes %FormaDeEstrella,5, Puntos:=5, Frecuencia:=2, Espaciado:=100, Angulo:=36, Gris:=100
  2971.    {
  2972.    /Grey exch 0 100 InRange def
  2973.    /Theta exch 1 90 InRange def
  2974.    /Spacing exch 1 300 InRange def
  2975.    /Frequency exch 1 25 InRange def
  2976.    /Points exch 1 15 InRange def
  2977.  
  2978.    /str 1 string def
  2979.    str 0 Points put
  2980.  
  2981.    /newfont 10 dict def
  2982.    newfont begin
  2983.  
  2984.    /FontMatrix [.001                0
  2985.                 0                   .001
  2986.                 0                   0] def
  2987.    /FontType 3 def
  2988.    /FontBBox [0 0 500 1000] def
  2989.  
  2990.    /Encoding 256 array def
  2991.    0 1 255 {Encoding exch /.notdef put} for
  2992.  
  2993.    /BuildChar
  2994.      {Spacing 100 div 500 mul  dup
  2995.       -0.1 -0.1 500.1 1000.1
  2996.       setcachedevice
  2997.       exch begin
  2998.  
  2999.       250 250 translate
  3000.       250 250 scale
  3001.       90 rotate
  3002.  
  3003.       dup
  3004.       180 exch div dup sin exch cos div
  3005.       Theta 2 div dup sin exch cos div
  3006.  
  3007.       1 0 moveto
  3008.       2 index
  3009.          {
  3010.          360 3 index div rotate
  3011.          dup dup 3 index add div
  3012.          dup 3 index mul neg
  3013.          lineto
  3014.          1 0 lineto
  3015.          } repeat
  3016.       closepath
  3017.  
  3018.       fill
  3019.       pop pop pop
  3020.  
  3021.       end
  3022.      }def
  3023.    end
  3024.  
  3025.    /pntsize 100000 Frequency div Spacing div def
  3026.  
  3027.    /FillFont newfont definefont pop
  3028.    /FillFont findfont pntsize scalefont setfont
  3029.  
  3030.    /increment Spacing 100 div pntsize mul def
  3031.  
  3032.    eoclip newpath
  3033.  
  3034.    Grey 100 div 1 exch sub setgray
  3035.    Bblly increment Bbury
  3036.      { Bbllx 1 index moveto
  3037.        { str show
  3038.          currentpoint
  3039.          dup 3 index sub
  3040.          increment 2.1 div gt { increment sub } if
  3041.          1 index Bburx gt
  3042.          {pop pop pop exit} if
  3043.          moveto
  3044.        } loop
  3045.      } for
  3046.    } bind def
  3047.  
  3048. %@Fill
  3049. /StoneWall %MuroDePiedra,4, Frecuencia:=15, GrisáMßximo:=100, GrisáMφnimo:=0, AnchoáLφnea:=5
  3050.    {
  3051.    /Linewidth exch 0 100 InRange def
  3052.    /MinGrey exch 0 100 InRange def
  3053.    /MaxGrey exch MinGrey 100 InRange def
  3054.    /Frequency exch 1 50 InRange def
  3055.  
  3056.    /DifGrey MaxGrey MinGrey sub def
  3057.    DifGrey 0 eq
  3058.       { /DifGrey 1 def
  3059.       } if
  3060.    Linewidth Frequency mul 250 div setlinewidth
  3061.    eoclip newpath
  3062.    0 srand
  3063.  
  3064.    currentscreen
  3065.    3 -1 roll
  3066.    pop 100
  3067.    3 1 roll
  3068.    setscreen
  3069.  
  3070.    /dy Bbury Bblly sub def
  3071.    /dx Bburx Bbllx sub def
  3072.    Bbllx Bbury translate
  3073.    250 Frequency div dup scale
  3074.  
  3075.    dy 920 div Frequency mul cvi {
  3076.       0 0 moveto
  3077.       /x0 0 def
  3078.       /y0 0 def
  3079.       /x1 0 def
  3080.       /y1 0 def
  3081.       /x2 0 def
  3082.       /y2 0 def
  3083.       /x3 0 def
  3084.       /y3 0 def
  3085.       0 5 dx 200 div Frequency mul
  3086.          { rand 50 mod 25 div 1 sub add
  3087.          x3 y3 moveto
  3088.          x2 y2 x1 y1 x0 y0 curveto
  3089.          dup rand 30 mod 15 div neg 2 sub
  3090.          2 copy
  3091.          /y0 exch def
  3092.          /x0 exch def
  3093.          lineto
  3094.          dup rand 50 mod 10 div 2.5 sub add rand 50 mod 10 div neg
  3095.          1 index rand 50 mod 10 div
  3096.          4 index rand 30 mod 15 div 2 add
  3097.          6 copy
  3098.          /y3 exch def
  3099.          /x3 exch def
  3100.          /y2 exch def
  3101.          /x2 exch def
  3102.          /y1 exch def
  3103.          /x1 exch def
  3104.          curveto
  3105.          pop
  3106.          closepath
  3107.          gsave
  3108.          rand DifGrey mod MinGrey add 100 div 1 exch sub setgray fill
  3109.          grestore
  3110.          0 setgray stroke
  3111.          } for
  3112.       0 -4 translate
  3113.       } repeat
  3114.    } bind def
  3115.  
  3116. %@Fill
  3117. /Text %Texto,5, Fuente:=1, Carßcter:=67, Frecuencia:=4, Espaciado:=100, GrisáFondo:=0
  3118.    {
  3119.    /BackGrey exch -1 100 InRange def
  3120.    /Spacing exch 30 300 InRange def
  3121.    /Frequency exch 1 50 InRange def
  3122.    /Character exch 33 255 InRange def
  3123.    /Font exch 1 35 InRange def
  3124.  
  3125.    /pntsize 100000 Frequency div Spacing div def
  3126.    Font  1 eq { /Times-Roman } if
  3127.    Font  2 eq { /Times-Italic } if
  3128.    Font  3 eq { /Times-Bold } if
  3129.    Font  4 eq { /Times-BoldItalic } if
  3130.    Font  5 eq { /Helvetica } if
  3131.    Font  6 eq { /Helvetica-Oblique } if
  3132.    Font  7 eq { /Helvetica-Bold } if
  3133.    Font  8 eq { /Helvetica-BoldOblique } if
  3134.    Font  9 eq { /Courier } if
  3135.    Font 10 eq { /Courier-Oblique } if
  3136.    Font 11 eq { /Courier-Bold } if
  3137.    Font 12 eq { /Courier-BoldOblique } if
  3138.    Font 13 eq { /Symbol } if
  3139.    Font 14 eq { /AvantGarde-Book } if
  3140.    Font 15 eq { /AvantGarde-BookOblique } if
  3141.    Font 16 eq { /AvantGarde-Demi } if
  3142.    Font 17 eq { /AvantGarde-DemiOblique } if
  3143.    Font 18 eq { /Bookman-Demi } if
  3144.    Font 19 eq { /Bookman-DemiItalic } if
  3145.    Font 20 eq { /Bookman-Light } if
  3146.    Font 21 eq { /Bookman-LightItalic } if
  3147.    Font 22 eq { /Helvetica-Narrow } if
  3148.    Font 23 eq { /Helvetica-Narrow-Bold } if
  3149.    Font 24 eq { /Helvetica-Narrow-BoldOblique } if
  3150.    Font 25 eq { /Helvetica-Narrow-Oblique } if
  3151.    Font 26 eq { /NewCenturySchlbk-Roman } if
  3152.    Font 27 eq { /NewCenturySchlbk-Bold } if
  3153.    Font 28 eq { /NewCenturySchlbk-Italic } if
  3154.    Font 29 eq { /NewCenturySchlbk-BoldItalic } if
  3155.    Font 30 eq { /Palatino-Roman } if
  3156.    Font 31 eq { /Palatino-Bold } if
  3157.    Font 32 eq { /Palatino-Italic } if
  3158.    Font 33 eq { /Palatino-BoldItalic } if
  3159.    Font 34 eq { /ZapfChancery-MediumItalic } if
  3160.    Font 35 eq { /ZapfDingbats } if
  3161.    findfont pntsize scalefont setfont
  3162.  
  3163.    /str 1 string def
  3164.    str 0 Character put
  3165.  
  3166.    /increment Spacing 100 div pntsize mul 2 mul def
  3167.  
  3168.    eoclip
  3169.    BackGrey 0 ge
  3170.       { BackGrey 100 div 1 exch sub setgray fill }
  3171.       { newpath } ifelse
  3172.  
  3173.    /Bbury Bbury pntsize add def
  3174.  
  3175.    0 setgray
  3176.    Bblly increment Bbury
  3177.      { Bbllx 1 index moveto
  3178.        { str show
  3179.          currentpoint increment 2 div add
  3180.          dup 3 index sub
  3181.          increment 2.1 div gt { increment sub } if
  3182.          1 index Bburx gt
  3183.          {pop pop pop exit} if
  3184.          moveto
  3185.        } loop
  3186.      } for
  3187.    } bind def
  3188.  
  3189. %@Fill
  3190. /Tiles %Mosaicos,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  3191.    {
  3192.    /BackgroundGray exch -1 100 InRange def
  3193.    /ForegroundGray exch 0 100 InRange def
  3194.    /Linewidth      exch 0 100 InRange def
  3195.    /Frequency      exch 2 100 InRange def
  3196.  
  3197.    /newfont 10 dict def
  3198.    newfont begin
  3199.  
  3200.    /FontMatrix [1  0  0
  3201.                 1  0  0] def
  3202.    /FontType 3 def
  3203.    /FontBBox [0 0 2 1] def
  3204.    /Encoding 256 array def
  3205.    0 1 255 {Encoding exch /.notdef put} for
  3206.  
  3207.    /BuildChar
  3208.      { 2  .5
  3209.        -0.1 -0.1 2.1 1.1
  3210.        setcachedevice
  3211.        pop begin
  3212.  
  3213.        0   0 moveto
  3214.        1.5 0 lineto
  3215.        1.75  0 .25 180 90 arcn
  3216.        1.75 .5 .25 -90 90 arc
  3217.        1.75  1 .25 270 180 arcn
  3218.        0   1 lineto
  3219.  
  3220.        Linewidth pntsize div setlinewidth
  3221.        stroke
  3222.  
  3223.        end
  3224.      } def
  3225.    end
  3226.  
  3227.    /pntsize 500 Frequency div def
  3228.  
  3229.    /FillFont newfont definefont pop
  3230.    /FillFont findfont pntsize scalefont setfont
  3231.  
  3232.    eoclip
  3233.    BackgroundGray 0 ge
  3234.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3235.       { newpath } ifelse
  3236.  
  3237.    ForegroundGray 100 div 1 exch sub setgray
  3238.  
  3239.    Bblly pntsize Bbury
  3240.      { Bbllx 1 index moveto
  3241.        { (a) show
  3242.          currentpoint
  3243.          dup 3 index sub
  3244.          pntsize 2.1 div gt { pntsize sub } if
  3245.          1 index Bburx gt
  3246.          {pop pop pop exit} if
  3247.          moveto
  3248.        } loop
  3249.      } for
  3250.    } bind def
  3251.  
  3252. %@Fill
  3253. /TreeRings %AnillosDeArbol,5, Dist.áMßxima:=150, Dist.áMφnima:=0, AnchoáLφnea:=5, GrisáFondo:=0, Funci≤náAleatoria:=0
  3254.    { srand
  3255.    /BackGrey exch -1 100 InRange def
  3256.    /LineWidth exch 0 100 InRange def
  3257.    /MinDist exch 0 500 InRange def
  3258.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  3259.  
  3260.    eoclip
  3261.    BackGrey 0 ge
  3262.       { BackGrey 100 div 1 exch sub setgray fill }
  3263.       { newpath } ifelse
  3264.  
  3265.    /cx Bburx Bbllx add 2 div def
  3266.    /cy Bbury Bblly add 2 div def
  3267.    /pntsize MaxDist MinDist sub def
  3268.    /hyp Bburx Bbllx sub dup mul Bbury Bblly sub dup mul add sqrt def
  3269.  
  3270.    /wr 0 def
  3271.    0 setgray
  3272.    LineWidth setlinewidth
  3273.  
  3274.       {
  3275.       /wr rand pntsize mod MinDist add wr add def
  3276.       cx wr add  cy moveto
  3277.       cx cy wr 0 360 arc
  3278.       stroke
  3279.       wr hyp gt {exit} if
  3280.       } loop
  3281.    } bind def
  3282.  
  3283. %@Fill
  3284. /Triangle %Trißngulo,4, Frecuencia:=8, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0
  3285.    {
  3286.    /BackgroundGray exch -1 100 InRange def
  3287.    /ForegroundGray exch 0 100 InRange def
  3288.    /Linewidth      exch 0 100 InRange def
  3289.    /Frequency      exch 2 100 InRange def
  3290.  
  3291.    /newfont 10 dict def
  3292.    newfont begin
  3293.  
  3294.    /FontMatrix  [ 0.5773  0
  3295.                   0             0.5773
  3296.                   0             0] def
  3297.    /FontType 3 def
  3298.    /FontBBox [0 0 1 3 sqrt] def
  3299.    /Encoding 256 array def
  3300.    0 1 255 {Encoding exch /.notdef put} for
  3301.  
  3302.    /BuildChar
  3303.      { 1  0
  3304.        -0.1  -0.1  1.1  1.8320
  3305.        setcachedevice
  3306.        pop begin
  3307.  
  3308.        0 0 moveto
  3309.        1 1.7320 lineto
  3310.        0 1.7320 lineto
  3311.        1 0 lineto
  3312.        closepath
  3313.  
  3314.        0 0.8660 moveto
  3315.        1 0.8660 lineto
  3316.  
  3317.        Linewidth pntsize div 1.7320 mul setlinewidth
  3318.        stroke
  3319.  
  3320.       end
  3321.      } def
  3322.    end
  3323.  
  3324.    /pntsize 1732 Frequency div def
  3325.    /FillFont newfont definefont pop
  3326.    /FillFont findfont pntsize scalefont setfont
  3327.  
  3328.    eoclip
  3329.    BackgroundGray 0 ge
  3330.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3331.       { newpath } ifelse
  3332.  
  3333.    ForegroundGray 100 div 1 exch sub setgray
  3334.  
  3335.    Bblly pntsize Bbury
  3336.      { Bbllx pntsize sub pntsize 3 sqrt div Bburx
  3337.        { 1 index moveto
  3338.        (a) show
  3339.        } for
  3340.      pop
  3341.      } for
  3342.    } bind def
  3343.  
  3344. %@Fill
  3345. /Waves %Ondas,5, Frecuencia:=6, AnchoáLφnea:=5, Grisá1eráPlano:=100, GrisáFondo:=0, Espaciadoá(%):=100
  3346.    {
  3347.    /Spacing        exch 30 300 InRange def
  3348.    /BackgroundGray exch -1 100 InRange def
  3349.    /ForegroundGray exch 0 100 InRange def
  3350.    /Linewidth      exch  0 100 InRange def
  3351.    /Frequency      exch  2 100 InRange def
  3352.  
  3353.    /newfont 10 dict def
  3354.    newfont begin
  3355.  
  3356.    /FontMatrix [0.0119  0
  3357.                 0          0.0119
  3358.                 0          0] def
  3359.    /FontType 3 def
  3360.    /FontBBox [37 56 111 114] def
  3361.    /Encoding 256 array def
  3362.    0 1 255 {Encoding exch /.notdef put} for
  3363.  
  3364.    /BuildChar
  3365.      { 74  0
  3366.        36.9 55.9 111.1 114.1
  3367.        setcachedevice
  3368.        pop begin
  3369.  
  3370.        1 1.5 scale
  3371.  
  3372.        37 38 moveto
  3373.        76 38 79 73 111 57 curveto
  3374.        80 60 80 38 111 38 curveto
  3375.  
  3376.        Linewidth pntsize div 84 mul setlinewidth
  3377.        stroke
  3378.  
  3379.       end
  3380.      } def
  3381.    end
  3382.  
  3383.    /pntsize 783 Frequency div def
  3384.  
  3385.    /FillFont newfont definefont pop
  3386.    /FillFont findfont pntsize scalefont setfont
  3387.  
  3388.    /Height pntsize Spacing 100 div mul def
  3389.  
  3390.    /Bbllx Bbllx Height sub def
  3391.    /Bblly Bblly Height sub def
  3392.    /Bburx Bburx Height add def
  3393.    /Bbury Bbury Height add def
  3394.  
  3395.    eoclip
  3396.    BackgroundGray 0 ge
  3397.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3398.       { newpath } ifelse
  3399.  
  3400.    ForegroundGray 100 div 1 exch sub setgray
  3401.    Bblly Height Bbury
  3402.      { Bbllx exch moveto
  3403.        { (a) show
  3404.          currentpoint
  3405.          pop Bburx gt
  3406.          {exit} if
  3407.        } loop
  3408.      } for
  3409.    } bind def
  3410.  
  3411. %------ Color PostScript fills added for v6.0 
  3412.  
  3413. %@Fill
  3414. /ColorBubbles %BurbujasColor,5, N·meroá(pulgadas2):=25, Tama±oáMßximo:=300, Tama±oáMφnimo:=10, AnchoáLφnea:=10, Funci≤náAleatoria:=0
  3415.    { srand
  3416.    /LineWidth exch 0 50 InRange def
  3417.    /MinSize exch 1 1000 InRange def
  3418.    /MaxSize exch MinSize 1000 InRange def
  3419.    /Number exch 1 250 InRange def
  3420.  
  3421.          /SetRandomRGB
  3422.          {
  3423.             3    %put 3 random numbers between 0 and 1 on the stack
  3424.             {rand 100 mod 1 add 100 div 1 exch sub}
  3425.             repeat
  3426.              setrgbcolor
  3427.          } def
  3428.  
  3429.    eoclip
  3430.    newpath
  3431.    /pntsize MaxSize MinSize div cvi def
  3432.    /dx Bburx Bbllx sub def
  3433.    /dy Bbury Bblly sub def
  3434.  
  3435.    dx dy mul Number mul 1000000 div cvi
  3436.    {  rand dx mod Bbllx add
  3437.       rand dy mod Bblly add
  3438.       rand pntsize mod 1 add pntsize exch div MinSize mul
  3439.       3 copy
  3440.       2 index add
  3441.       exch
  3442.       moveto
  3443.       pop
  3444.       0 360 arc
  3445.       gsave
  3446.  
  3447.       SetRandomRGB
  3448.  
  3449.       LineWidth setlinewidth
  3450.       stroke
  3451.       grestore
  3452.  
  3453.       1 setgray
  3454.       fill
  3455.       } repeat
  3456.  
  3457.    } bind def
  3458.  
  3459. %@Fill
  3460. /ColorCircles %CφrculosColor,4, N·meroá(pulgadas2):=25, Tama±oáMßximo:=300, Tama±oáMφnimo:=10, Funci≤náAleatoria:=0
  3461.    { srand
  3462.    /MinSize exch 1 1000 InRange def
  3463.    /MaxSize exch MinSize 1000 InRange def
  3464.    /Number exch 1 250 InRange def
  3465.  
  3466.          /SetRandomRGB
  3467.          {
  3468.             3    %put 3 random numbers between 0 and 1 on the stack
  3469.             {rand 100 mod 1 add 100 div 1 exch sub}
  3470.             repeat
  3471.              setrgbcolor
  3472.          } def
  3473.  
  3474.    eoclip
  3475.    newpath
  3476.    /pntsize MaxSize MinSize div cvi def
  3477.    /dx Bburx Bbllx sub def
  3478.    /dy Bbury Bblly sub def
  3479.  
  3480.    dx dy mul Number mul 1000000 div cvi
  3481.    {  rand dx mod Bbllx add
  3482.       rand dy mod Bblly add
  3483.       rand pntsize mod 1 add pntsize exch div MinSize mul
  3484.       3 copy
  3485.       2 index add
  3486.       exch
  3487.       moveto
  3488.       pop
  3489.       0 360 arc
  3490.       
  3491.       SetRandomRGB
  3492.  
  3493.       fill
  3494.  
  3495.         } repeat
  3496.  
  3497.    } bind def
  3498.  
  3499. %@Fill
  3500. /ColorCrosshatching %CuadriculadoColor,5, Dist.áMßxima:=75, Dist.áMφnima:=0, AnchoáLφnea:=5, Angulo:=45, Funci≤náAleatoria:=0
  3501.    { srand
  3502.    /Angle exch -180 180 InRange def
  3503.    /LineWidth exch 0 100 InRange def
  3504.    /MinDist exch 0 500 InRange def
  3505.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  3506.  
  3507.          /SetRandomRGB
  3508.          {
  3509.             3    %put 3 random numbers between 0 and 1 on the stack
  3510.             {rand 100 mod 1 add 100 div 1 exch sub}
  3511.             repeat
  3512.              setrgbcolor
  3513.          } def
  3514.  
  3515.    eoclip
  3516.    newpath
  3517.  
  3518.    /pntsize MaxDist MinDist sub def
  3519.    /dx2 Bburx Bbllx sub 2 div def
  3520.    /dy2 Bbury Bblly sub 2 div def
  3521.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  3522.  
  3523.    Bbllx Bblly translate
  3524.    dx2 dy2 translate
  3525.    Angle rotate
  3526.    LineWidth setlinewidth
  3527.  
  3528.    /wd hyp2 neg def
  3529.       { /wd rand pntsize mod MinDist add wd add def
  3530.       wd hyp2 neg moveto
  3531.       wd hyp2 lineto
  3532.  
  3533.             SetRandomRGB
  3534.             stroke
  3535.  
  3536.       wd hyp2 gt {exit} if
  3537.       } loop
  3538.  
  3539.    Angle -2 mul rotate
  3540.    /wd hyp2 neg def
  3541.       { /wd rand pntsize mod MinDist add wd add def
  3542.       wd hyp2 neg moveto
  3543.       wd hyp2 lineto
  3544.  
  3545.             SetRandomRGB
  3546.             stroke
  3547.  
  3548.       wd hyp2 gt {exit} if
  3549.       } loop
  3550.  
  3551.    } bind def
  3552.  
  3553. %@Fill
  3554. /ColorFishscale %EscamasColores,3, Frecuencia:=8, AnchoáLφnea:=5, GrisáFondo:=0
  3555.    {
  3556.    /BackgroundGray exch -1 100 InRange def
  3557.    /Linewidth      exch 0 100 InRange def
  3558.    /Frequency      exch 2 100 InRange def
  3559.  
  3560.          /SetRandomRGB
  3561.          {
  3562.             3    %put 3 random numbers between 0 and 1 on the stack
  3563.             {rand 100 mod 1 add 100 div 1 exch sub}
  3564.             repeat
  3565.              setrgbcolor
  3566.          } def
  3567.  
  3568.    /newfont 10 dict def
  3569.    newfont begin
  3570.  
  3571.    /FontMatrix [1  0  0
  3572.                 1  0  0] def
  3573.    /FontType 3 def
  3574.    /FontBBox [0 0 1 1] def
  3575.    /Encoding 256 array def
  3576.    0 1 255 {Encoding exch /.notdef put} for
  3577.  
  3578.    /BuildChar
  3579.      { 1  0
  3580.        0 0 1 1
  3581.        setcachedevice
  3582.        pop begin
  3583.  
  3584.        0.5 0.5 0.5 360 180 arcn
  3585.        0 1 0.5 270 360 arc
  3586.        1 1 0.5 180 270 arc
  3587.  
  3588.        Linewidth pntsize div setlinewidth
  3589.        stroke
  3590.  
  3591.       end
  3592.      } def
  3593.    end
  3594.  
  3595.    /pntsize 1000 Frequency div def
  3596.    /FillFont newfont definefont pop
  3597.    /FillFont findfont pntsize scalefont setfont
  3598.  
  3599.    eoclip
  3600.    BackgroundGray 0 ge
  3601.       { BackgroundGray 100 div 1 exch sub setgray fill }
  3602.       { newpath } ifelse
  3603.  
  3604.     Bblly pntsize Bbury
  3605.       { Bbllx exch moveto
  3606.         {
  3607.                   SetRandomRGB
  3608.                     
  3609.                     (a) show
  3610.           currentpoint
  3611.           pop Bburx gt
  3612.           {exit} if
  3613.         } loop
  3614.       } for
  3615.     } bind def
  3616.  
  3617. %@Fill
  3618. /GreenGrass %HierbaVerde,5, N·mero:=100, Tama±oáMßximo:=35, Tama±oáMφnimo:=7, Gris:=0, Funci≤náAleatoria:=0
  3619.     { srand
  3620.     /Grey exch -1 100 InRange def
  3621.     /MinSize exch 1 100 InRange def
  3622.     /MaxSize exch MinSize 100 InRange MinSize wDstChck def
  3623.     /Number exch 1 500 InRange def
  3624.  
  3625.     eoclip
  3626.     Grey 0 ge
  3627.        { Grey 100 div 1 exch sub setgray fill }
  3628.        { newpath } ifelse
  3629.  
  3630.     /Bbllx Bbllx MaxSize sub def
  3631.     /Bblly Bblly MaxSize sub def
  3632.  
  3633.     /dx Bburx Bbllx sub def
  3634.     /dy Bbury Bblly sub def
  3635.     /dSize MaxSize MinSize sub def
  3636.  
  3637.     dx dy mul 1000000 div Number mul cvi
  3638.        {
  3639.  
  3640.        matrix currentmatrix
  3641.  
  3642.        rand dx mod Bbllx add
  3643.        rand dy mod Bblly add
  3644.        translate
  3645.  
  3646.        rand dSize mod MinSize add
  3647.        dup scale
  3648.  
  3649.        -0.5 0 moveto
  3650.        rand 14 mod 7 sub
  3651.        -0.5 3  2 index 3 div 0.3 sub 10  4 index 10 curveto
  3652.        3 div 0.3 add 10 0.5 3 0.5 0 curveto
  3653.              closepath
  3654.  
  3655.        gsave
  3656.              0                                                                            %0 red
  3657.              rand 100 mod 1 add 100 div 1 exch sub    %random green
  3658.              dup 0.7 lt {pop 0.7} if                                 %above .7
  3659.              0                                                                            %0 blue
  3660.               setrgbcolor
  3661.        fill
  3662.        grestore
  3663.  
  3664.        0.1 setlinewidth
  3665.        0 setgray
  3666.        stroke
  3667.  
  3668.        setmatrix
  3669.  
  3670.        } repeat
  3671.  
  3672.      } bind def
  3673.  
  3674. %@Fill
  3675. /ColorHatching %RayadoColor,5, Dist.áMßxima:=75, Dist.áMφnima:=0, AnchoáLφnea:=5, Angulo:=45, Funci≤náAleatoria:=0
  3676.    { srand
  3677.    /Angle exch -180 180 InRange def
  3678.    /LineWidth exch 0 100 InRange def
  3679.    /MinDist exch 0 500 InRange def
  3680.    /MaxDist exch MinDist 500 InRange MinDist wDstChck def
  3681.  
  3682.      /SetRandomRGB
  3683.      {
  3684.          3    %put 3 random numbers between 0 and 1 on the stack
  3685.          {rand 100 mod 1 add 100 div 1 exch sub}
  3686.          repeat
  3687.          setrgbcolor
  3688.      } def
  3689.  
  3690.    eoclip
  3691.    newpath
  3692.  
  3693.    /pntsize MaxDist MinDist sub def
  3694.    /dx2 Bburx Bbllx sub 2 div def
  3695.    /dy2 Bbury Bblly sub 2 div def
  3696.    /hyp2 dx2 dup mul dy2 dup mul add sqrt def
  3697.  
  3698.    Bbllx Bblly translate
  3699.    dx2 dy2 translate
  3700.    Angle rotate
  3701.    LineWidth setlinewidth
  3702.  
  3703.    /wd hyp2 neg def
  3704.  
  3705.       { /wd rand pntsize mod MinDist add wd add def
  3706.       wd hyp2 neg moveto
  3707.       wd hyp2 lineto
  3708.  
  3709.             SetRandomRGB
  3710.  
  3711.       stroke
  3712.       wd hyp2 gt {exit} if
  3713.       } loop
  3714.  
  3715.    } bind def
  3716.  
  3717. %@Fill
  3718. /GreenLeaves %HojasVerdes,5, N·meroá(pulgadas2):=50, VerdeáMßximo:=100, VerdeáMφnimo:=70, Tama±oáMßximo:=100, Tama±oáMφnimo:=10
  3719.    {
  3720.    /MinSize exch 1 200 InRange def
  3721.    /MaxSize exch MinSize 200 InRange MinSize wDstChck def
  3722.    /MinGreen exch 0 100 InRange def
  3723.    /MaxGreen exch MinGreen 100 InRange def
  3724.    /Number exch 1 250 InRange def
  3725.  
  3726.    eoclip newpath
  3727.    currentscreen
  3728.    3 -1 roll
  3729.    pop 90
  3730.    3 1 roll
  3731.    setscreen
  3732.  
  3733.    /dx Bburx Bbllx sub def
  3734.    /dy Bbury Bblly sub def
  3735.  
  3736.    dx dy mul Number mul 1000000 div cvi
  3737.       {
  3738.       matrix currentmatrix
  3739.  
  3740.       rand dx mod Bbllx add
  3741.       rand dy mod Bblly add
  3742.       translate
  3743.  
  3744.       rand 360 mod
  3745.       rotate
  3746.  
  3747.       MaxSize MinSize eq
  3748.         { Maxsize 10.8 div }
  3749.         { rand MaxSize MinSize sub mod MinSize add 10.8 div } ifelse
  3750.       dup scale
  3751.  
  3752.       17 0 moveto
  3753.       65 -18 106 -13 125 0 curveto
  3754.       106 13  65  18  17 0 curveto
  3755.       gsave
  3756.             0    % 0 red
  3757.       MaxGreen MinGreen eq
  3758.         { MaxGreen 100 div }
  3759.         { rand MaxGreen MinGreen sub mod MinGreen add 100 div } ifelse
  3760.             0 % 0 blue
  3761.       setrgbcolor
  3762.       fill
  3763.       grestore
  3764.       0.3 setlinewidth
  3765.       0 setgray
  3766.       stroke
  3767.  
  3768.       setmatrix
  3769.  
  3770.       } repeat
  3771.  
  3772.    } bind def
  3773.  
  3774. %@Fill
  3775. /ColorLeaves %HojasColor,3, N·meroá(pulgadas2):=50, Tama±oáMßximo:=100, Tama±oáMφnimo:=10
  3776.    {
  3777.    /MinSize exch 1 200 InRange def
  3778.    /MaxSize exch MinSize 200 InRange MinSize wDstChck def
  3779.    /Number exch 1 250 InRange def
  3780.  
  3781.          /SetRandomRGB
  3782.          {
  3783.             3    %put 3 random numbers between 0 and 1 on the stack
  3784.             {rand 100 mod 1 add 100 div 1 exch sub}
  3785.             repeat
  3786.              setrgbcolor
  3787.          } def
  3788.  
  3789.    eoclip newpath
  3790.    currentscreen
  3791.    3 -1 roll
  3792.    pop 90
  3793.    3 1 roll
  3794.    setscreen
  3795.  
  3796.    /dx Bburx Bbllx sub def
  3797.    /dy Bbury Bblly sub def
  3798.  
  3799.    dx dy mul Number mul 1000000 div cvi
  3800.       {
  3801.       matrix currentmatrix
  3802.  
  3803.       rand dx mod Bbllx add
  3804.       rand dy mod Bblly add
  3805.       translate
  3806.  
  3807.       rand 360 mod
  3808.       rotate
  3809.  
  3810.       MaxSize MinSize eq
  3811.         { Maxsize 10.8 div }
  3812.         { rand MaxSize MinSize sub mod MinSize add 10.8 div } ifelse
  3813.       dup scale
  3814.  
  3815.       17 0 moveto
  3816.       65 -18 106 -13 125 0 curveto
  3817.       106 13  65  18  17 0 curveto
  3818.       gsave
  3819.  
  3820.       SetRandomRGB
  3821.  
  3822.       fill
  3823.       grestore
  3824.       0.3 setlinewidth
  3825.       0 setgray
  3826.       stroke
  3827.  
  3828.       setmatrix
  3829.  
  3830.       } repeat
  3831.  
  3832.    } bind def
  3833.  
  3834. %@Fill
  3835. /ColorReptiles %ReptilesColor,2, Frecuencia:=4, AnchoáLφnea:=8
  3836. {
  3837.   /LineWidth exch 0 250 InRange def
  3838.   /Frequency exch 1 100 InRange def
  3839.  
  3840.     /SetRandomRGB
  3841.     {
  3842.         3    %put 3 random numbers between 0 and 1 on the stack
  3843.         {rand 100 mod 1 add 100 div 1 exch sub}
  3844.         repeat
  3845.         setrgbcolor
  3846.     } def
  3847.  
  3848.   /newfont 10 dict def
  3849.   newfont begin
  3850.  
  3851.   /FontMatrix [0.2857            0
  3852.                0                   0.2857
  3853.                0                   0] def
  3854.   /FontType 3 def
  3855.   /FontBBox [-1.73 -1.86 2.36 2.0] def
  3856.   /Encoding 256 array def
  3857.   0 1 255 {Encoding exch /.notdef put} for
  3858.   Encoding 97 /ReptilesStroked put
  3859.   Encoding 98 /ReptileFilled put
  3860.  
  3861.   /CharProcs 3 dict def
  3862.   CharProcs begin
  3863.   /.notdef {} def
  3864.   /ReptilesStroked
  3865.   {
  3866.     %3 sqrt  1.5  translate
  3867.  
  3868.     0.8660  0.5  moveto
  3869.     3
  3870.     {
  3871.       120 rotate
  3872.  
  3873.       0     0    moveto
  3874.       0.32 -0.40 lineto
  3875.       0.32 -0.48 lineto
  3876.       0    -0.72 lineto
  3877.  
  3878.       0.05 -1.03 moveto
  3879.       0.4  -0.76 lineto
  3880.       0.84 -0.84 lineto
  3881.       0.5  -0.96 lineto
  3882.       0.31 -1.18 lineto
  3883.  
  3884.       0.87 -1.5  moveto
  3885.       0.58 -1.28 lineto
  3886.       0.8  -1.14 lineto
  3887.       0.94 -1.18 lineto
  3888.       1.24 -1.08 lineto
  3889.       1.42 -1.18 lineto
  3890.  
  3891.       1.68 -1.02 moveto
  3892.       1.52 -0.84 lineto
  3893.       1.64 -0.66 lineto
  3894.       1.73 -0.36 lineto
  3895.  
  3896.       1.73  0    moveto
  3897.       1.41 -0.26 lineto
  3898.       1.32 -0.49 lineto
  3899.       1.06 -0.24 lineto
  3900.       1.42  0.18 lineto
  3901.  
  3902.       0.87  0.57 moveto
  3903.       0.87  0.26 lineto
  3904.       0.99  0.26 lineto
  3905.       1.05  0.12 lineto
  3906.       0.82 -0.07 lineto
  3907.       0.68 -0.07 lineto
  3908.       0.62  0.36 lineto
  3909.  
  3910.  
  3911.       0.8660  0.5 moveto
  3912.  
  3913.     } repeat
  3914.  
  3915.     LineWidth Pointsize div 3.5 mul setlinewidth
  3916.     stroke
  3917.  
  3918.   } def
  3919.   /ReptileFilled
  3920.   {
  3921.     0     0    moveto
  3922.     0.32 -0.40 lineto
  3923.     0.32 -0.48 lineto
  3924.     0    -0.72 lineto
  3925.  
  3926.    -0.40 -0.55 lineto
  3927.    -0.47 -0.68 lineto
  3928.    -0.42 -0.97 lineto
  3929.    -0.27 -0.99 lineto
  3930.    -0.21 -0.88 lineto
  3931.  
  3932.     0.05 -1.03 lineto
  3933.     0.4  -0.76 lineto
  3934.     0.84 -0.84 lineto
  3935.     0.5  -0.96 lineto
  3936.     0.31 -1.18 lineto
  3937.  
  3938.     0.32 -1.39 lineto
  3939.     0.55 -1.60 lineto
  3940.     0.59 -1.74 lineto
  3941.     0.82 -1.86 lineto
  3942.  
  3943.     0.87 -1.5  lineto
  3944.     0.58 -1.28 lineto
  3945.     0.8  -1.14 lineto
  3946.     0.94 -1.18 lineto
  3947.     1.24 -1.08 lineto
  3948.     1.42 -1.18 lineto
  3949.     1.52 -1.45 lineto
  3950.     1.45 -1.81 lineto
  3951.     1.74 -1.47 lineto
  3952.     1.68 -1.02 lineto
  3953.     1.52 -0.84 lineto
  3954.     1.64 -0.66 lineto
  3955.     1.73 -0.36 lineto
  3956.     2.28 -0.46 lineto
  3957.     2.36 -0.11 lineto
  3958.     2.12 -0.15 lineto
  3959.     1.73  0    lineto
  3960.     1.41 -0.26 lineto
  3961.     1.32 -0.49 lineto
  3962.     1.06 -0.24 lineto
  3963.     1.42  0.18 lineto
  3964.     1.21  0.41 lineto
  3965.     1.11  0.60 lineto
  3966.  
  3967.     0.87  0.57 lineto
  3968.     0.87  0.26 lineto
  3969.     0.99  0.26 lineto
  3970.     1.05  0.12 lineto
  3971.     0.82 -0.07 lineto
  3972.     0.68 -0.07 lineto
  3973.     0.62  0.36 lineto
  3974.     0.26  0.52 lineto
  3975.     0.19  0.48 lineto
  3976.     closepath
  3977.     fill
  3978.   } def
  3979.   end
  3980.  
  3981.   /BuildChar
  3982.   {
  3983.     2.5980  1.5
  3984.     -1.83 -1.96 2.46 2.1
  3985.     setcachedevice
  3986.     exch begin
  3987.     Encoding exch get
  3988.     CharProcs exch get
  3989.     end
  3990.     exec
  3991.   } def
  3992.   end
  3993.  
  3994.   /Pointsize 2000 Frequency div def
  3995.  
  3996.   /FillFont newfont definefont pop
  3997.   /FillFont findfont Pointsize scalefont setfont
  3998.  
  3999.   /pntsize Pointsize 6 mul 7 div def
  4000.   /HeightDiff Pointsize 2 mul 7 div .49 mul def
  4001.  
  4002.   eoclip newpath
  4003.  
  4004.   currentscreen
  4005.   3 -1 roll
  4006.   pop 120
  4007.   3 1 roll
  4008.   setscreen
  4009.  
  4010.   Bblly pntsize Bbury pntsize add HeightDiff add
  4011.   {
  4012.     Bbllx 1 index moveto
  4013.     {
  4014.       currentpoint
  4015.       1 index exch
  4016.  
  4017.       2 copy 2 copy translate
  4018.       240 rotate
  4019.       
  4020.             SetRandomRGB
  4021.             (b) show
  4022.  
  4023.       0 0 moveto
  4024.       -240 rotate
  4025.       neg exch neg exch translate
  4026.  
  4027.       2 copy translate
  4028.       120 rotate
  4029.       
  4030.             SetRandomRGB
  4031.             (b) show
  4032.       
  4033.             0 0 moveto
  4034.       -120 rotate
  4035.       neg exch neg exch translate
  4036.  
  4037.             SetRandomRGB
  4038.       (b) show
  4039.  
  4040.       currentpoint
  4041.       dup 4 index sub
  4042.       pntsize 2.1 div gt { pntsize sub } if
  4043.       3 -1 roll Bburx gt
  4044.       {pop pop pop exit} if
  4045.       moveto
  4046.     } loop
  4047.   } for
  4048.  
  4049.   LineWidth 0 gt
  4050.   {
  4051.     0 setgray
  4052.     Bblly pntsize Bbury pntsize add
  4053.     {
  4054.       Bbllx 1 index moveto
  4055.       {
  4056.         (a) show
  4057.         currentpoint
  4058.         dup 3 index sub
  4059.         pntsize 2.1 div gt { pntsize sub } if
  4060.         1 index Bburx gt
  4061.         {pop pop pop exit} if
  4062.         moveto
  4063.       } loop
  4064.     } for
  4065.   } if
  4066. } bind def
  4067.  
  4068. %@Fill
  4069. /StainedGlass %VidrieraColor,2, Frecuencia:=15, AnchoáLφnea:=5
  4070.    {
  4071.    /Linewidth exch 0 100 InRange def
  4072.    /Frequency exch 1 50 InRange def
  4073.  
  4074.      /SetRandomRGB
  4075.      {
  4076.          3    %put 3 randoms number between 0 and 1 on the stack
  4077.          {rand 100 mod 1 add 100 div 1 exch sub}
  4078.          repeat
  4079.         setrgbcolor
  4080.      } def
  4081.  
  4082.    Linewidth Frequency mul 250 div setlinewidth
  4083.    eoclip newpath
  4084.    0 srand
  4085.  
  4086.    currentscreen
  4087.    3 -1 roll
  4088.    pop 100
  4089.    3 1 roll
  4090.    setscreen
  4091.  
  4092.    /dy Bbury Bblly sub def
  4093.    /dx Bburx Bbllx sub def
  4094.    Bbllx Bbury translate
  4095.    250 Frequency div dup scale
  4096.  
  4097.    dy 920 div Frequency mul cvi {
  4098.       0 0 moveto
  4099.       /x0 0 def
  4100.       /y0 0 def
  4101.       /x1 0 def
  4102.       /y1 0 def
  4103.       /x2 0 def
  4104.       /y2 0 def
  4105.       /x3 0 def
  4106.       /y3 0 def
  4107.       0 5 dx 200 div Frequency mul
  4108.          { rand 50 mod 25 div 1 sub add
  4109.          x3 y3 moveto
  4110.          x2 y2 x1 y1 x0 y0 curveto
  4111.          dup rand 30 mod 15 div neg 2 sub
  4112.          2 copy
  4113.          /y0 exch def
  4114.          /x0 exch def
  4115.          lineto
  4116.          dup rand 50 mod 10 div 2.5 sub add rand 50 mod 10 div neg
  4117.          1 index rand 50 mod 10 div
  4118.          4 index rand 30 mod 15 div 2 add
  4119.          6 copy
  4120.          /y3 exch def
  4121.          /x3 exch def
  4122.          /y2 exch def
  4123.          /x2 exch def
  4124.          /y1 exch def
  4125.          /x1 exch def
  4126.          curveto
  4127.          pop
  4128.          closepath
  4129.          
  4130.                  gsave
  4131.                  SetRandomRGB
  4132.                  fill
  4133.          grestore
  4134.  
  4135.          0 setgray stroke
  4136.          } for
  4137.       0 -4 translate
  4138.       } repeat
  4139.    } bind def
  4140.